Python 3---データ型---集合

24243 ワード

前言
この文章はPythonデータ型における集合の概念を述べている.
2020-01-17
天象独行
集合もpython言語に属するデータ型で、ある可変、ある可変、要素は順序がなく、繰り返してはいけないことを特徴としています.メタグループ(tuple)がリスト(list)と文字列(str)のハイブリダイゼーションである場合、セット(set)はlistとdictのハイブリダイゼーションと呼ぶことができる.集合は辞書のような特徴を持っています.{}カッコで定義できます.要素にはシーケンス、すなわち非シーケンスタイプのデータがありません.また、セット内の要素は繰り返してはいけません.これはdictキーに似ています.コレクションにもリストの特徴があります.元の場所で変更できるコレクションがあります.
  0X01;コレクションの作成
    1;set()メソッドの作成
注意:set()が創設した集合はすべてその場で修正可能な集合であり,あるいは可変でありunhashablともいえる.
>>> x = set('aaron')
>>> x
{'n', 'o', 'a', 'r'}
>>> 

    2;{}による作成
注記:{}では、リストまたは辞書タイプのオブジェクト要素を含むセットを作成できません.
>>> y = {'w','asdfads','owenoeo'}
>>> y
{'owenoeo', 'w', 'asdfads'}
>>> 

    3;frozenset()による作成
注記:このコレクションの作成方法はfrozenset()ではその場で変更できません.
>>> a = frozenset("asdfgh")
>>> a
frozenset(['a', 'd', 'g', 'f', 'h', 's'])
>>> 

  0X02;しゅうごうかんすう
私たちはすべて“万物はすべて対象です”を知っていて、この中ももちろん集合を含んで、それでは集合はいくつかの対象の方法を継承しますか?これらの方法はどのように使いますか?通常、dir()メソッドでオブジェクトに含まれるメソッドを表示し、helpでメソッドの使用方法を表示します.
    1;コレクションの包含メソッドの表示
>>> x = set('aaron')
>>> x
{'n', 'o', 'a', 'r'}
>>> y = {'w','asdfads','owenoeo'}
>>> y
{'owenoeo', 'w', 'asdfads'}
>>> dir(x)
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']

    2;メソッドの役割の表示
>>> help(x.update)
Help on built-in function update:

update(...) method of builtins.set instance
    Update a set with the union of itself and others.

   0X03;しゅうごうえんざん
    1;要素と集合の関係
要素と集合は関係があり、ある集合に属しているか、属していないかのいずれかです.
>>> b = frozenset("sdfgf")
>>> b
frozenset({'d', 'f', 's', 'g'})
>>> "d" in b
True
>>> "u" in b
False
>>> 

    2;集合と集合の関係
2つの集合A,Bを仮定する
      2.1;AがBに等しいかどうか、すなわち2つの集合の要素が完全に同じかどうか.
>>> x = set("qwer")
>>> y = set("qwer")
>>> x
{'w', 'q', 'r', 'e'}
>>> y
{'w', 'q', 'r', 'e'}
>>> x == y
True
>>> x != y
False
>>> 

      2.2;AがBのサブセットであるか、あるいは逆にBがAのスーパーセットであるか、すなわちAの要素もBの要素であるか、Bの要素はAの要素より多い.集合Aが集合Bのサブセットであるか否かを判断するには、Aを用いることができる
>>> a = set("qazwsxedc")
>>> b = set("qazwsx")
>>> a
{'x', 'c', 'z', 'd', 'w', 'q', 'a', 's', 'e'}
>>> b
{'x', 'z', 'w', 'q', 'a', 's'}
>>> a < b
False
>>> a > b
True
>>> 

      2.3;A、Bの集合、すなわちA、Bのすべての要素.使用可能な記号は「|」で、半角の状態の縦線で、入力方法は英語の状態で、「shift」と右かっこの右側のキーを押します.式はA|Bで関数A.union(B)を使用することもでき、結果は2つの集合であり、この結果は新しく生成されたオブジェクトであり、結合Aを拡張するものではないことに注意してください.
>>> a = set("qazwsxedc")
>>> b = set("pl,okmijn")
>>> c = a | b
>>> c
{'l', 'k', 'x', 'c', 'j', 'z', 'i', 'd', ',', 'p', 'o', 'n', 'w', 'q', 'a', 's', 'm', 'e'}
>>> 

      2.4;A,Bの交点,すなわちA,Bに共通する要素は,&を用いて操作する.
>>> a = set("qazwsxedc")
>>> b = set("edcrfvtgb")
>>> c = a & b
>>> c
{'d', 'c', 'e'}
>>> 

      2.5;)A対Bの差(補)、すなわちA対Bの異なる部分要素.「-」を使用して操作
>>> a = set("qazwsxedc")
>>> b = set("edcrfvtgb")
>>> c = a - b
>>> c
{'x', 's', 'z', 'q', 'a', 'w'}
>>>