集合の操作

Python SELF JA
レベル 9 , レッスン 8
使用可能

8.1 演算子とメソッドの表

Pythonは演算子のオーバーロードをサポートしているから、 メソッドだけでなく、演算子を使ってオブジェクトに対する操作もできちゃうのさ。+, -, *, /, | などがあるんだ。

クラスset(集合)は可能な限りの演算子をオーバーロードして、集合での操作が数学っぽくてシンプルになるんだ。

そんな演算子の表はこちら:

演算子 メソッド 説明
| union() 2つの集合の和集合を返すよ。
& intersection() 集合の積集合を返す(共通の要素だけ)。
- difference() 集合の差を返す(最初の集合にしかない要素)。
^ symmetric_difference() 集合の対称差を返す(どちらか片方の集合にだけある要素)。
<= issubset() ある集合が他の集合の部分集合かを確認する。
< issubset() ある集合が他の集合の真部分集合かを確認する(厳密な部分集合)。
>= issuperset() ある集合が他の集合の上位集合かを確認する。
> issuperset() ある集合が他の集合の真上位集合かを確認する(厳密な上位集合)。
== __eq__() 集合が等しいかを確認する(同じ要素を含むか)。
!= __ne__() 集合が等しくないかを確認する(異なる要素を含むか)。

集合の操作では演算子を使うとすごく便利だよね。ちょっと試してみて!

8.2 演算子を使った集合の操作

和集合 (OR)

演算子 | union()関数の使用

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2
print(union_set)  # 出力: {1, 2, 3, 4, 5}
                    

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)  
print(union_set)  # 出力: {1, 2, 3, 4, 5}
                            
                    

積集合 (AND)

演算子 & intersection()関数の使用

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1 & set2
print(intersection_set)  # 出力: {3}
                    

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1.intersection(set2)
print(intersection_set)  # 出力: {3}

差集合 (DIFFERENCE)

演算子 - difference()関数の使用

 

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5}
difference_set = set1 - set2
print(difference_set)  # 出力: {1, 2}

                    

 

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5}
difference_set = set1.difference(set2)
print(difference_set)  # 出力: {1, 2}

対称差 (SYMMETRIC DIFFERENCE)

演算子 ^ symmetric_difference()関数の使用

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
s_diff = set1 ^ set2
print(s_diff)  # 出力: {1, 2, 4, 5}
                    

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
s_diff = set1.symmetric_difference(set2)
print(s_diff)  # 出力: {1, 2, 4, 5}

ちょっと変だけど、+*の演算子が使われないのもおかしいよね。でもPythonの開発者がそう決めたから、それに従おう。

1
Опрос
Pythonの集合,  9 уровень,  8 лекция
недоступен
Pythonの集合
Pythonの集合
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION