Pythonのセット

Python Set, python set example

Pythonのセット

Pythonのセットは、順序のない一意の要素のコレクションです。もしリストがあり、リストから一意の要素のみを取り出したい場合、Pythonのセットを使用することができます。同様に、入力から一意の要素のみが必要な場合も、Pythonのセットを使うことができます。セットにはアイテムを追加したり削除したりすることができます。セットは波括弧「{ }」の間に要素を配置することで初期化することができます。他のシーケンスと同様に、1つのセットに複数のデータ型の要素を持つことができます。さらに、set()関数を使用してリストからセットを作成することもできます。以下の例は、セットの初期化についての参考になるでしょう。

#set containing single data-type
set1 = {1, 2, 3, 4, 2, 3, 1}
print(set1)

#set containing multiple data-type
set2 = {1, 2, 3, (1, 2, 3), 2.45, "Python", 2, 3}
print(set2)

#creating a set from a list
theList = [1, 2, 3, 4, 2, 3, 1]
theSet = set(theList)
print(theSet)

次には出力されます。

================== RESTART: /home/imtiaz/set1.py ==================
set([1, 2, 3, 4])
set([1, 2, 3, 2.45, 'Python', (1, 2, 3)])
set([1, 2, 3, 4])
>>> 

Pythonのセットに要素を追加する。

前の例で、Pythonのセットを直接初期化する方法を学びました。セットに要素を追加する必要がある場合、add()関数を使用して行うことができます。ただし、この関数は単一の要素しか追加できません。リストやセットのような反復可能な要素を追加したい場合、update()関数を使用することができます。次の例は、このことを理解するのに役立ちます。

#initialize an empty set
theSet = set()

#add a single element using add() function
theSet.add(1)
theSet.add(2)
theSet.add(3)
theSet.add(2)
#add another data-type
theSet.add('hello')

#add iterable elements using update() function
theSet.update([1,2,4,'hello','world']) #list as iterable element
theSet.update({1,2,5}) #set as iterable element
print(theSet)

以下のコードの出力は次のとおりです。

================== RESTART: /home/imtiaz/set_new.py ==================
set([1, 2, 3, 4, 5, 'world', 'hello'])
>>> 

Pythonのセットから要素を削除する。

PythonのSetから要素を削除するためには2つの関数があります。1つはremove()関数であり、もう1つはdiscard()関数です。もし削除しようとしている要素がセットに存在しない場合、remove()関数は例外を発生させます。しかしdiscard()関数はこれを行いません。以下のコードはそれらを示しています。

theSet = {1,2,3,4,5,6}

#remove 3 using discard() function
theSet.discard(3)
print(theSet)

#call discard() function again to remove 3
theSet.discard(3) #This won't raise any exception
print(theSet)

#call remove() function to remove 5
theSet.remove(5)
print(theSet)

#call remove() function to remove 5 again
theSet.remove(5) #this would raise exception
print(theSet) #this won't be printed

出力は、あなたが予想するようなものになるでしょう。 (Shutsuryoku wa, anata ga yosō suru yōna mono ni narudeshou)

================== RESTART: /home/imtiaz/set_del.py ==================
set([1, 2, 4, 5, 6])
set([1, 2, 4, 5, 6])
set([1, 2, 4, 6])

Traceback (most recent call last):
  File "/home/imtiaz/set_del.py", line 16, in 
    theSet.remove(5) #this would raise exception
KeyError: 5
>>> 

Pythonの集合演算

あなたは、和集合、共通部分、差集合などの数学的な集合操作について、多少なじみがあるかもしれません。Pythonのsetを使用しても、これらの操作を行うことができます。今回は、その方法を学びましょう。

Pythonのセットの結合

和集合は、2つの集合を合併する操作です。つまり、和集合は、2つの集合のすべてのユニークな要素を含んだ別の集合を作成します。たとえば、{1, 2, 3, 4} と {2, 3, 5, 7} は、2つの集合です。これらに和集合の操作を行うと、{1, 2, 3, 4, 5, 7} を得ることができます。この操作は、union() 関数を使用して行うことができます。

Pythonのセットの共通部分

再び、交差は二つの集合の共通なユニークな要素を取得する操作です。例えば、{1, 2, 3, 4} と {2, 3, 5, 7} は二つの集合です。それらを交差させると、{2, 3}が得られます。交差操作はintersection()関数によって行われます。

Pythonの集合差

差分演算は、2つの集合を比較し、集合Aには存在するが集合Bには存在しない要素からなる新しい集合を作成します。例えば、集合A = {1, 2, 3, 4} と 集合B = {2, 3, 5, 7} があるとします。そうすると、A – B の演算では {1, 4} が生成されます。さらに、B – A の演算では {5, 7} が生成されます。差分演算は、difference()関数によって行われます…以下のコードは、Pythonプログラミングでこれらの集合演算を行う方法を示しています。

A = {1, 2, 3, 4} #initializing set A
B = {2, 3, 5, 7} #initializing set B

union_operation = A.union(B)

print("A union B :")
print(union_operation)

intersection_operation = A.intersection(B)

print("A intersection B :")
print(intersection_operation)

difference_operation = A.difference(B)

print("A-B :")
print(difference_operation)

difference_operation = B.difference(A)
print("B-A :")
print(difference_operation)

あなたが得る出力はこのようになります。

================== RESTART: /home/imtiaz/set_op.py ==================
A union B :
set([1, 2, 3, 4, 5, 7])
A intersection B :
set([2, 3])
A-B :
set([1, 4])
B-A :
set([5, 7])
>>> 

では、これで今日のレッスンは終わりです。Pythonのセットについて良く学べたことを願っています。もし他に質問があれば、コメントボックスに書いてください。私たちがお答えします。参考資料:公式ドキュメント。

コメントを残す 0

Your email address will not be published. Required fields are marked *