あれもPython,これもPython

Pythonメモ※本サイトはアフィリエイトを利用しています

Pythonで集合を扱う(setの使用)

Pythonのセットを学ぶ

Pythonでユニークな集合を得たい場合はsetが便利です。

dat = set([1,1,2,3,4])
# set([1,2,3,4])

Pythonのセットは数学の集合論
集合操作のメソッドを持っています。

引数はイテレータブルなら良いので、文字列でも使えます。

# wordおよび、ある単語を比較して、
# 被っていない文字を知りたい
word = set["word"]
#set['w','o','r','d']

word.difference('sord')
#set['w']

メソッド名が長く、なかなか覚えにくい。。。

集合 メソッド
union
intersection
-∧ difference
∨-∧ synemtric_difference
issubset,isupperset

論理和:または

A∨Bを表します。

A = set([1,2,3])
B = [1,4,5]
A.union(B)
# set([1,2,3,4,5])

論理積:かつ

A∧Bを表します。

A = set([1,2,3])
B = [1,4,5]
A.intersection(B)
#set([1])

差集合

Aのみの要素を取り出します A - A∧Bです

A = set([1,2,3])
B = [1,4,5]
A.difference(B)
#set([2,3])

対象差

A∨B-A∧Bです。

A = set([1,2,3])
B = [1,4,5]
A.symmetric_difference(B)
#set([2,3,4,5])

部分集合になっているのかの確認

A∈Bかの確認です。 A∋Bが確認したい場合は、 issupersetを使います。

A = set([1,2,3])
B = [1,4,5]

A.issubset(B)
# False

A.issubset([1,2,3,4,5])
# True