Python3.5セットとその一般的な演算例の詳細

6650 ワード

この例ではPython 3について述べる.5セットとその一般的な演算.皆さんの参考にしてください.具体的には以下の通りです.
1、集合の定義:集合は無秩序で重複のないデータのデータの組み合わせである.
2、集合の特徴:
(1)重複要素の除去:1つのリストを集合にすることで重さ除去を実現する.
(2)テスト関係:2組のデータ間の交差、並列、差分などの関係をテストする.
3、集合のよく使う操作:
(1)繰り返し:リストを集合に、形式:集合=set(リスト)

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)
print(list_1,type(list_1))


実行結果:
{1, 3, 5, 6, 8, 9}
(2)二つの集合の交差をテストする――形式はprint((集合1).intersection(集合2))またはprint(集合1&集合2)

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  # , 
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.intersection(list_2))  # 


実行結果:
{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9} {8, 9, 5, 6}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 & list_2)  # 


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9} {8, 9, 2, 5, 6}
(3)2つの集合の並列集合をテストする(2つの集合を結合して重複要素を除去する)――形式はprint((集合1).union(集合2))または集合1|集合2

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  # , 
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.union(list_2))     # 


実行結果:
{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9} {1, 2, 3, 4, 5, 6, 8, 9}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 | list_2)  # 


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9} {0, 1, 2, 3, 4, 5, 6, 8, 9}
(4)二つの集合をテストする差集合――形式はprint((集合1).difference(集合2))またはprint((集合2).difference(集合1))

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  # , 
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.difference(list_2))  # 1 2 
print(list_2.difference(list_1))  # 2 1 


実行結果:
{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9} {1, 3} {2, 4}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 - list_2)  # 1 2 
print(list_2 - list_1)  # 2 1 


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9} {1, 3, 4} {0}
(5)ある集合が別の集合のサブセットであるかどうかをテストする――形式はprint(集合1.issubset(集合2))またはprint(集合2.issubset(集合1))である.

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.issubset(list_2))   # 1 2 
print(list_2.issubset(list_1))   # 2 1 


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9} False True
(6)ある集合が別の集合の親であるかどうかをテストする――形式はprint(集合1.issuperset(集合2))またはprint(集合2.issuperset(集合1))である.

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.issuperset(list_2))  # 1 2 
print(list_2.issuperset(list_1))  # 2 1 


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9} True False
(7)2つの集合をテストする対称差集合――形式はprint(集合1.symmetric_difference(集合2))またはprint(集合1^集合2)である.

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
list_2 = set([22,5,4,65,8,9,3])
print(list_1,list_2)
print(list_1.symmetric_difference(list_2))  # ( )


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {65, 3, 4, 5, 8, 9, 22} {65, 1, 22, 2, 6}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 ^ list_2)  # 


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9} {0, 1, 3, 4}
(8)2つの集合の交差をテストし、交差がなくてTrueを返す.交差がある場合はFalseを返します.形式はprint(集合1.isdisjoint(集合2))です.

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
list_2 = set([22,54,65,81,10,0])
print(list_1,list_2)
print(list_1.isdisjoint(list_2))  # True


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {0, 65, 10, 81, 54, 22} True
(9)集合に要素を追加する――呼び出し:コンテンツを追加する集合.add(コンテンツの追加)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
print(list_1)
list_1.add(54)  # 
print(list_1)


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {1, 2, 3, 4, 5, 6, 8, 9, 54}
(10)集合に複数の要素を追加する――呼び出し:コンテンツを追加する集合.update(コンテンツの追加)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
print(list_1)
list_1.update([11,22,33])
print(list_1)


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {1, 2, 3, 4, 5, 6, 33, 8, 9, 11, 22}
(11)集合に1つの要素を削除する――呼び出し:コンテンツの集合を削除する.remove(コンテンツの削除)注意:削除された要素が存在しないとエラーが発生します

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
print(list_1)
list_1.remove(1)
print(list_1)


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} {2, 3, 4, 5, 6, 8, 9}
コレクション内の要素を任意に削除し、削除した要素を返す――呼び出し:print(コレクション.pop()

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
print(list_1)
print(list_1.pop())
print(list_1.pop())
print(list_1.pop())


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} 1 2 3
コレクションで指定した要素を削除します.呼び出し:コレクション.discard(要素を削除)注:削除された要素が存在しない場合はNoneが出力され、エラーは発生しません

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
print(list_1)
print(list_1.discard(23))
list_1.discard(3)
print(list_1)


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} None {1, 2, 4, 5, 6, 8, 9}
(12)集合の長さを求める――呼び出し:print(len(集合)))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
print(list_1)
print(len(list_1))


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} 8
(13)xがsであるか否かをテストするメンバー(文字列、リスト、辞書、集合に適用)――形式:x in s xがsでないか否かをテストするメンバー(文字列、リスト、辞書、集合に適用)――形式:x noti n s

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  # , 
print(list_1)
print(3 in list_1)
print(7 not in list_1)


実行結果:
{1, 2, 3, 4, 5, 6, 8, 9} True True
Pythonに関する詳細について興味のある読者は、「Python関数使用テクニックまとめ」、「Pythonリスト(list)操作テクニックまとめ」、「Python辞書操作テクニックまとめ」、「Pythonデータ構造とアルゴリズムチュートリアル」、「Python文字列操作テクニックまとめ」、「Python入門と進級経典チュートリアル」を参照してください.
ここではPythonプログラムの設計に役立つことを願っています.