Setは重複のない要素をもつ順序なしのコレクションオブジェクト。
リストから重複する要素を取り除いたり、積集合・和集合・差集合のような集合演算を使うために使用します。
>>> s = set([1, 2, 3])
>>> s
set([1, 2, 3])
>>> s.add(3) #重複するので変化ない
>>> s.add(4)
>>> s
set([1, 2, 3, 4])
>>> l = ["hello", "world", "apple", "world", "python", "apple"] #重複する要素をもつリスト
>>> l
['hello', 'world', 'apple', 'world', 'python', 'apple']
>>> list(set(l)) #setを作成して重複を取り除いて再びリスト化する
['python', 'world', 'hello', 'apple']
集合演算
>>> s = set([1, 2, 3])
>>> s.union([3, 4, 5]) #和集合
set([1, 2, 3, 4, 5])
>>> s.difference([3, 4, 5]) #差集合
set([1, 2])
>>> s.intersection([3, 4, 5]) #積集合 (共通部分)
set([3])
>>> s.symmetric_difference([3, 4, 5]) #どちらか一方に属する要素
set([1, 2, 4, 5])
>>> s.issubset([3, 1, 2, 5]) # sが [3, 1, 2, 5]の部分集合である場合True
True
>>> s.issubset([3, 1, 5])
False
>>> s.issuperset([3, 1]) # [3, 2]がsの部分集合の場合True
True
>>> s.issuperset([3, 1, 2])
True
>>> s.issuperset([3, 1, 2, 5])
False
ピンバック: 言語処理100本ノック 2015 第1章: 準備運動 No.06 | トラポン 機械学習から人工知能まで勉強してみる!