【Python入門】Python Setの操作 – Python初心者勉強記009
Python Setの概要
Python Setは重複要素のない集合を表現するデータ型です。
リストの重複を除くといった操作を行うことができます。
また、共通集合・和集合といった集合演算が可能です。
セットの要素には辞書やリストなどの変更可能なオブジェクトを指定することはできません。
セットには変更可能なセットと変更不可能なフローズンセットの2種類が存在します。
Setの作成
set(iterableオブジェクト)
frozenset(iterableオブジェクト)
セットはリストやタプルなどのitareble(要素を一つずつ返せる)なオブジェクトから作成します。
要素内に変更可能なオブジェクトを含む場合はエラーになります。
セットの中にセットを入れ子にしたい場合は、要素にフローズンセットを指定します。
>>> a=(3,2,3,8)
>>> sorted(a)
[2, 3, 3, 8]
>>> tuple(sorted(a))
(2, 3, 3, 8)
>>> set([1,2,3])
set([1, 2, 3])
>>> set([{1 : 'a'},2,3])
Traceback (most recent call last):
File "", line 1, in
TypeError: unhashable type: 'dict'
>>> set([frozenset([1,2]),2,3])
set([frozenset([1, 2]), 2, 3])
論理演算
・論理和
unionメソッドで、指定オブジェクトに含まれている全ての要素を持ったセットを作成します。
.union(iterableオブジェクト)
・論理積
intersectionメソッドは、指定オブジェクトに共通して含まれる要素を持ったセットを作成します。
.intersection(iterableオブジェクト)
・差集合
differenceメソッドは、指定オブジェクトには含まれていない要素を持ったセットを作成します。
.difference(iterableオブジェクト)
・対称差
symmetric_differenceメッソドは、指定オブジェクトに共通して含まれる要素以外の要素を持ったセットを作成します。
.symmetric_difference(iterableオブジェクト)
>>> a = set([1,2,3])
>>> a.union([2,3,4])
set([1, 2, 3, 4])
>>> a.intersection([2,3,4])
set([2, 3])
>>> a.difference([2,3,4])
set([1])
>>> a.symetric_difference([2,3,4])
>>> a.symmetric_difference([2,3,4])
set([1, 4])
これらの操作は集合演算子を使って行うこともできます。
>>> set([1,2,3]) | set([2,3,4]) #和集合
set([1, 2, 3, 4])
>>> set([1,2,3]) & set([2,3,4]) #共通集合
set([2, 3])
>>> set([1,2,3]) – set([2,3,4]) #差集合
set([1])
>>> set([1,2,3]) ^ set([2,3,4]) #対称差
set([1, 4])
今回はここまで
Python入門講座の次の記事はこちら => 【Python入門】Python Setの操作(続き) – Python初心者勉強記010