8.1 演算子とメソッドの表
Pythonは演算子のオーバーロードをサポートしているから、
メソッドだけでなく、演算子を使ってオブジェクトに対する操作もできちゃうのさ。+
, -
,
*
, /
, |
などがあるんだ。
クラスset
(集合)は可能な限りの演算子をオーバーロードして、集合での操作が数学っぽくてシンプルになるんだ。
そんな演算子の表はこちら:
演算子 | メソッド | 説明 |
---|---|---|
| |
union() |
2つの集合の和集合を返すよ。 |
& |
intersection() |
集合の積集合を返す(共通の要素だけ)。 |
- |
difference() |
集合の差を返す(最初の集合にしかない要素)。 |
^ |
symmetric_difference() |
集合の対称差を返す(どちらか片方の集合にだけある要素)。 |
<= |
issubset() |
ある集合が他の集合の部分集合かを確認する。 |
< |
issubset() |
ある集合が他の集合の真部分集合かを確認する(厳密な部分集合)。 |
>= |
issuperset() |
ある集合が他の集合の上位集合かを確認する。 |
> |
issuperset() |
ある集合が他の集合の真上位集合かを確認する(厳密な上位集合)。 |
== |
__eq__() |
集合が等しいかを確認する(同じ要素を含むか)。 |
!= |
__ne__() |
集合が等しくないかを確認する(異なる要素を含むか)。 |
集合の操作では演算子を使うとすごく便利だよね。ちょっと試してみて!
8.2 演算子を使った集合の操作
和集合 (OR)
演算子 | | union()関数の使用 |
---|---|
|
|
積集合 (AND)
演算子 & | intersection()関数の使用 |
---|---|
|
|
差集合 (DIFFERENCE)
演算子 - | difference()関数の使用 |
---|---|
|
|
対称差 (SYMMETRIC DIFFERENCE)
演算子 ^ | symmetric_difference()関数の使用 |
---|---|
|
|
ちょっと変だけど、+
や*
の演算子が使われないのもおかしいよね。でもPythonの開発者がそう決めたから、それに従おう。
GO TO FULL VERSION