Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonセット操作。


数学では、集合はそれ自体がオブジェクトと見なされる別個のオブジェクトのコレクションです。たとえば、2、4、6の数字は、別々に考えると別個のオブジェクトですが、まとめて考えると、{2,4,6}と書かれたサイズ3の単一のセットを形成します。

セットの操作

操作 表記 意味
交差点 A∩B との両方にあるすべての要素
ユニオン A∪B いずれかまたは(または両方)にあるすべての要素
違い A − B 含まれているが含まれていないすべての要素
補完 (または) 含まれていないすべての要素

Pythonでは、リストと比較して、セットを使用する主な利点は、特定の要素がセットのメンバーであるかどうかをチェックするための最適化された関数を備えていることです。これは、ハッシュテーブルのデータ構造に基づいています。

セットの方法

add(x)メソッド: アイテムxが存在しない場合は、セットに追加されます。

A = {"AA", "BB", "CC"}
A.add("VV")

これにより、AセットにVVが追加されます。

union(s)メソッド: 2つのセットの和集合を返します。2つの既存のセット間で演算子「|」を使用することは、My_Set1.union(My_Set2)..

を記述することと同じです。
A = {"AA", "BB", "CC"}
B = {"MM", "NN"}
Z = A.union(B)
OR
Z = A|B

セット母集団セットには、AとBの両方のコンポーネントが含まれます。

交差する方法: 2つの指定されたセットの共通部分を返します。この操作では「&」演算子を使用できます。

S = A.intersection(B)

セットの犠牲者には、AとBの共通の要素が含まれます。

違いの方法: 最初のセットには存在するが、2番目のセットには存在しないすべての要素を含むセットを返します。ここでは「-」演算子を使用できます。

W = A.difference(B)
OR
S = A – B

安全に設定すると、Aにはあるが、Bにはないすべての要素が含まれます。

clear()メソッド: 既存のセット全体が空になります。

B.clear()

Bセットをクリア

セットの演算子

セットとフリーズセットは、次の演算子をサポートしています-

key in s         # containment check
key not in s   # non-containment check
s1 == s2       # s1 is equivalent to s2
s1 != s2       # s1 is not equivalent to s2
s1 <= s2    # s1is subset of s2 s1 < s2     # s1 is proper subset of s2 s1 >= s2             # s1is superset of s2
s1 > s2     # s1 is proper superset of s2
s1 | s2        # the union of s1 and s2
s1 & s2        # the intersection of s1 and s2
s1 – s2        # the set of elements in s1 but not s2
s1 ˆ s2        # the set of elements in precisely one of s1 or s2

サンプルコード

# Python program to demonstrate working# of 
# Set in Python 
# creating two sets 
My_Set1 = set()
My_Set2 = set()
# Adding elements to My_Set1
for i in range(1, 6): 
   My_Set1.add(i) 
# Adding elements to My_Set2
for i in range(3, 8): 
   My_Set2.add(i) 
print("My_Set1 = ", My_Set1) 
print("My_Set2 = ", My_Set2) 
print("\n") 
# Union of My_Set1 and My_Set2
My_Set3 = My_Set1 | My_Set2# My_Set1.union(My_Set2) 
print("Union of My_Set1&My_Set2: My_Set3 = ", My_Set3) 
# Intersection of My_Set1 and My_Set2
My_Set4 = My_Set1&My_Set2# My_Set1.intersection(My_Set2) 
print("Intersection of My_Set1&My_Set2: My_Set4 = ", My_Set4) 
print("\n") 
# Checking relation between My_Set3 and My_Set4
if My_Set3>My_Set4: # My_Set3.issuperset(My_Set4) 
   print("My_Set3 is superset of My_Set4") 
elif My_Set3<My_Set4: # My_Set3.issubset(My_Set4) 
   print("My_Set3 is subset of My_Set4") 
else : # My_Set3 == My_Set4
   print("My_Set3 is same as My_Set4") 
# displaying relation between My_Set4 and My_Set3
if My_Set4<My_Set3: # My_Set4.issubset(My_Set3) 
   print("My_Set4 is subset of My_Set3") 
   print("\n") 
# difference between My_Set3 and My_Set4
My_Set5 = My_Set3 - My_Set4
print("Elements in My_Set3 and not in My_Set4: My_Set5 = ", My_Set5) 
print("\n") 
# check if My_Set4 and My_Set5 are disjoint sets 
if My_Set4.isdisjoint(My_Set5): 
   print("My_Set4 and My_Set5 have nothing in common\n") 
# Removing all the values of My_Set5
My_Set5.clear()
print("After applying clear on sets My_Set5: ") 
print("My_Set5 = ", My_Set5) 
のすべての値

出力

My_Set1 = {1, 2, 3, 4, 5}
My_Set2 = {3, 4, 5, 6, 7}
Union of My_Set1&My_Set2: My_Set3 = {1, 2, 3, 4, 5, 6, 7}
Intersection of My_Set1&My_Set2: My_Set4 = {3, 4, 5}
My_Set3 is superset of My_Set4
My_Set4 is subset of My_Set3
Elements in My_Set3 and not in My_Set4: My_Set5 = {1, 2, 6, 7}
My_Set4 and My_Set5 have nothing in common
After applying clear on sets My_Set5: 
My_Set5 = set()

  1. Pythonでの<>の操作とは何ですか?

    <>演算子は、Python2.xでは演算子と等しくないため使用できます。同じ操作に対して!=演算子もあります。 Python 3.xでは、<>演算子は非推奨になりました。 Python 2.7 >>> a=5                                                     &n

  2. Pythonセット

    Pythonセットは、順序付けされていないを含むコレクションタイプです。 ユニークのコレクション および不変 オブジェクト。つまり、Pythonセットは重複するアイテムを保持できず、セットが作成されると、アイテムを変更することはできません。 注:セットのアイテムは不変です。つまり、アイテムを変更することはできません。ただし、セット自体は変更可能です。つまり、セットにアイテムを追加したり、セットからアイテムを削除したりできます。 順序は維持されません。たとえば、同じセットを印刷するたびに、アイテムの順序が異なる場合があります。 Pythonでは、セットは中括弧{}を使用して構築されます セッ