Lesson 10
セット
1. セットとは何ですか?
Pythonで設定して数学のセットに相当するデータ構造です。さまざまな要素で構成されています。セット内の要素の順序は定義されていません。あなたは集合の要素を追加したり削除したり、集合の要素を反復することができます。集合(集合、交点、差分)に対して標準的な操作を行うことができます。それ以外に、要素がセットに属しているかどうかを調べることができます。
要素が順序付きリストとして格納される配列とは異なり、要素の順序は未定義です(さらに、集合要素は通常、集合の外観順に格納されません;これにより、要素がより速く集合に属するかどうかを確認できますセットのすべての要素を通過するよりも)。
任意の不変データ型は、集合の要素(数字、文字列、タプル)にすることができます。変更可能な(変更可能な)データ型は、セットの要素にすることはできません。特に、listは集合の要素になることはできませんが、他の集合は集合の要素になることはできません。不変性の要件は、コンピュータがメモリ内のセットをどのように表現するかという方法に従います。
2. セットを定義する方法
括弧内のすべての要素に名前を付けることで、セットを単純なものとして定義できます。唯一の例外は空集合です 。これはset()関数を使って作成できます。 set(..)がリスト、文字列、またはタプルをパラメータとして持つ場合、その要素で構成されるセットが返されます。例えば、
A = {1, 2, 3}
A = set('qwerty')
print(A)
{'e', 'q', 'r', 't', 'w', 'y'}を出力として出力します。
要素の順序は重要ではありません。例えば、プログラム
A = {1, 2, 3}
B = {3, 2, 3, 1}
print(A == B)
AとBは等しいセットなのでTrueます。
各要素は1回だけセットに入ることができます。 set('Hello')は、 {'H', 'e', 'l', 'o'}の4つの要素のセットを返します。
3. 要素による操作
関数lenを使って、集合内の要素の数を得ることができます。
次のループfor使用して、セットのすべての要素を反復することもできます(未定義の順序で)。
primes = {2, 3, 5, 7, 11}
for num in primes:
print(num)
in : a in Aような式はa in A bool型の値を返します。同様に、ではnot in反対の操作not inます。要素をセットにaddには、 addメソッドがあります。
A = {1, 2, 3}
print(1 in A, 4 not in A)
A.add(4)
要素をセットから削除するには、 discardとremoveという2つの方法があります。それらの動作は、削除されたアイテムがセットに含まれていない場合にのみ変化します。この場合、メソッドdiscardは何もせず、メソッドremoveは例外KeyError removeスローします。
最後に、 popはセットから1つのランダムな要素を削除し、その値を返します。セットが空の場合、 popは例外KeyError生成します。
関数listを使用して、セットをリストに変換できlist 。
4. セットに対する操作
これはPythonでよく知られている操作をセットで実行する方法です:
| B A.ユニオン(B) | 集合 Aと集合B和集合である集合を返します。 |
A | = B A.update(B) | 配列 Bすべての要素を集合A追加します。 |
A&B A.交絡(B) | 集合 AとB交点である集合を返します。 |
A&= B A.intersection_update(B) | セットで葉セットに属しているアイテムのみ A B 。 |
A - B A.差(B) | 差集合を返し A及びB (要素が中に含まA 、しかしには含まれていないB )。 |
A - = B A.difference_update(B) | 集合 AからBすべての要素を削除します。 |
A ^ B 対称差異(B) | 集合 AとB ( AまたはBいずれかに属し、両方の集合に同時に属していない要素)の対称差を返します。 |
A ^ = B Symmetric_difference_update(B) | セット AとセットB対称差をA書き込みます。 |
A <= B A.issubset(B) | AがBサブセットでtrue場合、 true返します。 |
A> = B A.セットトップ(B) | BがAサブセットでtrue場合はtrue返します。 |
A <B | A <= B and A != B等しい |
A> B | A >= B and A != B等しい |