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