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 等しい |