Python の学習者や Python プログラマーが Lambda 関数、Map Reduce、Java コレクション API、Python コレクション インターフェースなどのより高度な概念を学習および/またはコーディングするためのエントリ ポイントとして、Python でセットを使用する方法を学びます。
このチュートリアルでは、概念をよりよく理解するのに役立つ例を使用して、Python プログラミング言語で設定されたデータ構造のいくつかの日常的な使用例を調べます。
読み進めて始めましょう!
前提条件
このチュートリアルは実践的なデモンストレーションです。フォローしたい場合は、次のものが揃っていることを確認してください:
- Python v3 以降の環境がインストールされている
- VS Code などの Python コードを実行するためのコード エディター
Python で最初のセットを作成する
Python の 2 つのデータ構造は、変更可能なデータの順序付きコレクションであるリストと、データをキーと値のペアで格納する辞書です。 Mutable とは、作成後にデータを変更できることを意味します。リストと辞書の共有特性を設定します。リストと同様に、セットは単一要素の変更可能なコレクションです。
リストとは異なり、セットはシーケンスではないためインデックスがありません。セットは辞書に似ていますが、これも順序付けされていないコレクションです。 Python は、ルックアップ操作のセットと辞書の両方を高度に最適化し、速度を向上させます。
キーを検索して辞書で値を取得できます。たとえば、アドレス帳を調べて誰かの名前を検索し、その電話番号を取得することができます。ただし、セットにはキーと値のペアは含まれません。代わりに、セット内の要素を検索して、セット内に存在するかどうかを確認します。この概念はメンバーシップ テストと呼ばれます。
学習するには、セットを作成する時が来ました!セットに要素を追加することで、セットを作成します。手を汚しましょう!
1. ターミナルでインタラクティブな Python セッションを開始します。
2. Python セッションの準備ができたら、set()
を呼び出してセットを作成します メソッドを呼び出して、追加する任意のタイプのデータを渡します。以下のコードをコピーして Python セッションに貼り付け、Enter を押します 最初のセットを作成します。 my_firs_set
を宣言しています 変数、set リテラル:中括弧。 ATA, Hello World
string は最初で唯一の要素です。
my_first_set = {'ATA, Hello World'}
3. 以下のコマンドを実行して最初のセットを呼び出し、セットが作成されたことを確認します。
my_first_set
文字列 ATA, Hello World
が得られます 以下に示すように。
4. my_first_set
であることを再確認できます type()
を使用して設定されます my_first_set
のデータ型を取得する関数 .以下のコードを実行して、データ型を取得します。
type(my_first_set)
以下に示す出力が得られます。出力は my_first_set
を確認します はセットです。
5. セットはコレクションであるため、組み込みの長さ関数があります:len()
.以下のコードを実行して、セットの長さを取得します。
len(my_first_set)
その見返りに、1, が得られます 以下に示すように、セットには要素が 1 つしか含まれていないためです。要素を 1 つだけ含むセットは、シングルトン セットとも呼ばれます。
プロパティを定義するセットについて
セットには、次に示す 2 つの定義プロパティがあります。スポイラーが好きな人はいません。読み進めてコーディングを開始し、これらのプロパティについて学びましょう。
set_comparison.py という名前の新しいファイルを作成します に、以下のコードをコピーして貼り付けます。
# You will make a couple of sets. The first set is {1, 2, 3},
# the second set has the same numbers in a different order {3, 2, 1}.
# You'll use a double equal sign == to compare the sets. # And you'll use a print statement to print out the result of this comparison.
print({1, 2, 3} == {3, 2, 1})
IDE で次のコマンドを実行して、set_comparison.py を実行します。 スクリプトを作成し、比較出力を出力します。
python set_comparison.py
真になります 以下に示す出力として:Python はこれら 2 つのセットを評価し、両方が等しいと見なしました。それらは同じ長さであり、互いにまったく同じ要素を含んでいます。
要素がセット内にある場合、他の要素から一意であることが保証されます。具体的に言えば、セットは、特定のコレクションまたは文字列内のすべての個別の値を追跡する数学オブジェクトです。
1️⃣ Python セットはシーケンスではありません:セット内の要素の順序は重要ではありません。セットは順不同です。
次に、セットが重複する値を処理する方法を学習します。 set_integer_number.py という名前の新しいファイルを作成します 、下の行をコピーして貼り付けます。このセット リテラルの各メンバーは、カンマで区切られた整数であり、これらの整数の一部は順不同で繰り返されます。
print({1, 2, 3, 2, 3, 4, 3, 4, 4, 4})
以下のコマンドを実行して、セットのメンバーを出力します。
python set_integer_number.py
以下のような出力が得られます。set_integer_number
が表示されます。 一意の値 1 のみを含む 、2 、3 、および 4 .あなたはそれらのほとんどすべてを繰り返しましたが。 Python が実際のセットを評価して構築し、出力すると、セットには 4 つのメンバーしかありません。
要素がセット内にある場合、他の要素から一意であることが保証されます。具体的に言えば、セットは、特定のコレクションまたは文字列内のすべての個別の値を追跡する数学オブジェクトです。
2️⃣ Python セットには重複するデータは含まれません:重複する値はありません。メンバーはお互いにユニークに異なります。
len()
を使用してこのセットの長さを出力することにより、重複した値が格納されているかどうかを再確認できます。 方法。 set_integer_number.py から以前のコンテンツを削除します ファイルを開き、以下の行をコピーして set_integer_number.py に貼り付けます ファイル。
print(len({1, 2, 3, 2, 3, 4, 3, 4, 4, 4}))
以下のコマンドを実行して、セットの長さを出力します。
python set_integer_number.py
番号 4 を取得します 以下に示す出力では、セットに 4 つのメンバーしかないことを意味します。
これらのプロパティをセットの実際の例と比較してください。フルーツのセット:リンゴ、バナナ、オレンジ、レモン、ライム。果物の順番は関係ありません。リストの順序を変更しても、何も変わりません。果物の同じリストがまだあります。りんごはバナナやレモンよりも重要ではありません。
すべての果物はユニークで、互いにはっきりと異なります。果物の名前を 5 つ挙げるように言われたら、バナナを 5 回言うことはありません。1 回で十分です。バナナは既にセットに含まれているため、再度追加してもセットは変更されません。
Python セットへの要素の追加
前のセクションでは、新しい Python セットを作成する方法を学びました。このセクションでは、Python セットを操作する方法を学習します。最初に要素をセットに追加します。
Python セットは変更可能です。つまり、セットの作成後にセット内のデータを変更できます。
セットに要素を追加するには、2 つの方法があります。 add()
メソッドは 1 つの要素を追加しますが、update()
は メソッドは複数の要素を追加します。
set_vowels.py という名前の新しいファイルを作成します 、以下のコードをコピーしてファイルに貼り付けます。
# You'll declare a new variable vowels and assign it as an empty set.
vowels = set()
#Use the add() method to add one element to the set.
# Let's add A, which was the first vowel.
vowels.add('A')
#Print the new set with the added element.
print(vowels)
以下のコードを実行して、要素をセットに追加していることを確認してください。
python set_vowels.py
以下のような出力が得られます。 「A」と出力されることに注意してください ‘ set_vowels を印刷するとき コンテンツ、つまり「A」 set_vowels
のメンバーです .
ここで、残りの母音を 1 つずつ追加する代わりに、update メソッドを使用してそれらをまとめて追加します。
以下の行をコピーして set_vowels.py に貼り付けます ファイル。文字列である反復可能な型を使用します:U 、E 、O 、そして私 . update メソッドはすべての要素を 1 つずつ調べて、文字列を反復可能にし、各要素をセットに追加します。
vowels.update('U, E, O, I')
以下のコードを実行して、セットに新しく追加された 4 つの母音がすべて含まれていることを確認します。
python set_vowels.py
以下に示す出力が得られます。すべての母音がセットに追加されていることがわかります。
これらの文字列データ型の順序は非決定論的です。したがって、母音が異なる順序で出てきても問題ありません。意図したとおりに動作しています。
Python セットから要素を削除する
前のセクションでは、要素をセットに追加する方法を学びました。このセクションでは、セットから要素を削除する方法を学びます。
Python セットから要素を削除するには、次の 4 つの方法があります:
clear()
remove()
discard()
pop()
それぞれの方法を1つずつ見ていきましょう。例は、前のセクションで設定した母音に依存します。元のセットに影響を与えないように、元のセットの代わりにコピーを作成します。
copy()
メソッドはセットのコピーを作成します。たとえば、次の行をコピーして set_vowels.py に貼り付けます。 削除方法ごとにコピーを作成するためのファイル。
clear_method = vowels.copy()
remove_method = vowels.copy()
discard_method = vowels.copy()
clear_method = vowels.copy()
クリア メソッドを学ぶ
最初の方法は clear()
です メソッド、その構文は set.clear()
です .このメソッドは引数を取りません。
以下の行をコピーして set_vowels.py に貼り付けます clear()
を呼び出す メソッドを実行して clear_method
を出力します セット
clear_method.clear()
print(clear_method)
以下のコードを実行すると、以下に示すように空のセットが出力されます。 clear()
メソッドはセットからすべての要素を削除しました。
python set_vowels.py
Remove メソッドの使用
さて、remove()
へ 方法。このメソッドは引数を 1 つ取ります。これは、セットから削除する要素です。 remove()
の構文 メソッドは set.remove(element)
です .以下のコードでこのメソッドを使用します。
remove_method = vowels.copy()
# Rmove the letter A.
remove_method.remove('A')
print(remove_method)
以下のコードを実行して、文字 A が削除されていることを確認します remove_method
から
python set_vowels.py
以下に示すような出力が得られます。 A がもはやセットの一部ではないことがわかります。
セットに存在しない要素を削除しようとすると、キー エラーが発生します。 remove()
を呼び出しましょう セットのメンバーではない要素を持つメソッド、B 文字。
remove_method = vowels.copy()
remove_method.remove('B')
print(remove_method)
set_vowels.py を再実行します。 以下のようなエラーを示す出力が表示されます。
Discard メソッドによる要素の削除
3 番目の方法は discard()
です 方法。このメソッドは、セットから削除する要素である 1 つの引数を取ります。
remove()
の違い と discard()
つまり、要素が存在しない場合、discard() メソッドはエラーを発生させません。このメソッドは、KeyError の発生を回避します。 discard()
を呼び出すことができます 何度でも。
discard()
の構文 メソッドは set.discard(element)
です .もう一度、以下のコードをコピーして貼り付けます。 B を破棄します セットのメンバーではない文字であり、今回は Python はエラーを発生させません。
discard_method = vowels.copy()
discard_method.discard('B')
print(discard_method)
set_vowels.py を実行します もう一度見てみましょう。
python set_vowels.py
以下に示すような出力が得られます。エラーがないことがわかります。
Pop メソッドによる要素の取り出し
最後の方法は pop()
です 方法。このメソッドは引数を取りません。セットからランダムな要素を削除し、削除された要素を返します。 pop() メソッドの構文は set.pop()
です .
以下のコードをコピーして貼り付け、pop()
を呼び出します メソッドを呼び出して、削除された要素を出力します。
pop_method = vowels.copy()
vowel = pop_method.pop()
print(vowel)
print(pop_method)
set_vowels.py を実行します。 以下に示すような出力が得られます。元の母音セットには 5 つの母音が含まれています。あなたの pop_method
セットには 4 つの母音があります。メソッドは母音 O を削除して返します。 .
pop()
以降 ランダムな要素を削除すると、別の結果が得られた可能性があります。コードを複数回実行すると、ランダム性に気付くでしょう。
結論
これで、Python セットと、要素を作成、削除、またはセットに追加するために必要な方法について理解が深まったはずです。次のステップとして、集合演算と集合対リストについて調べてみませんか?