読者です 読者をやめる 読者になる 読者になる

人間だったら考えて

考えて考えて人間だったら考えて

Pythonのset演算は演算子使うとスマート

Python

この記事は何?

Pythonでset演算をするには,union関数やintersection関数を用います.
最近,set演算は演算子を用いた方法もサポートされていることを知ったので(ドキュメントに書いてあるんですけどね),紹介したいと思います.

どのように書けるのか?

set演算は演算子を用いて,以下のように書けます.

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 | s2
{1, 2, 3, 4}
>>> s1 & s2
{2, 3}
>>> s1 - s2
{1}
>>> s1 ^ s2
{1, 4}
>>> s3 = set([1, 2, 3])
>>> s4 = set([1, 2])
>>> s3 > s4
True
>>> s3 < s4
False

ビット演算と同じような気持ちで書けます,union関数やintersection関数を呼ぶよりもスマートな気がします.

どんな演算子がサポートされてるの?

これに関しては公式ドキュメント
http://docs.python.jp/3.5/library/stdtypes.html#set-types-set-frozenset
を参照です,たまに公式ドキュメントを読むと発見がありますね…