Pythonのセット
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のセットについて良く学べたことを願っています。もし他に質問があれば、コメントボックスに書いてください。私たちがお答えします。参考資料:公式ドキュメント。