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 | トラポン 機械学習から人工知能まで勉強してみる!