Pythonの集合型

提供: Python入門
移動: 案内検索
スポンサーリンク

集合型(set型,セット型)は、Pythonのデータ型の1つで、リストに似ています。

読み方

集合型
しゅうごうがた
sets
せっつ

概要

集合型(セット型,set型)は、リストやディクショナリと似たデータ型です。

リストとの違いは

  • 要素に順番がない
  • 重複した要素を持たない

です。

セットの作り方

>>> s = set([1,2,3])
>>> s
set([1, 2, 3])

リストではなく、文字列を渡すとこうなります。

>>> t = set("hoge")
>>> t
set(['h', 'e', 'g', 'o'])

データは重複しない

このように 集合型では、データは重複しません。

>>> s = set([1,2,3,1,2,3])
>>> s
set([1, 2, 3])

ディクショナリ型を集合型にすると

ディクショナリ型(辞書型)を集合型にすると、キー名の集合になります。

>>> d = {'a':1,'b':2,'c':3}
>>> d
{'a': 1, 'c': 3, 'b': 2}
>>> e = set(d)
>>> e
set(['a', 'c', 'b'])

集合の要素数を調べる

>>> s = set([1,2,3])
>>> len(s)
3

要素を追加する

>>> s = set([1,2,3])
>>> s.add(4)
set([1, 2, 3, 4 ])

要素を削除する

>>> s = set([1,2,3])
>>> s.remove(2)
>>> s
set([1, 3])

コレクションの要素を追加する

>>> s = set([1,2,3])
>>> s
set([1, 2, 3])
>>> t  = set([4,5,6])
>>> s.update(t)
>>> s
set([1, 2, 3, 4, 5, 6])

セットを空にする

>>> s = set([1,2,3])
>>> s.clear()
>>> s
set([])

ソースコード

langs = set(['c', 'c++', 'python'])

セットの集合演算を行えます

s1.issubset(s2) 
s1 が s2 の 部分集合 であれば真を返します
s1.issuperset(s2) 
s2 が s1 の 部分集合 であれば真を返します
s1.intersection(s2) 
s1 が s2 の 積 (s1 & s2) を求めます
s1.union(s2) 
s1 が s2 の 和 (s1 | s2) を求めます
s1.difference(s2) 
s2 に現れない s1 の 要素を求めます (s1 - s2)
s1.symmetric_difference(s2) 
s1 が s2 の 両方に一度だけ現れる要素を求める (s1 ^ s2)
>>> s2 = set([1,2,3])
>>> s1 = set([1,2])
>>> s1.issubset(s2)
True

メンバーのテスト

集合に、指定したものが含まれるか確認できます。

>>> s = set([1,2,3])
>>> 3 in s
True
>>> 5 in s
False
>>> 5 not in s
True

上記のコードは、以下の意味になります。

  • 1,2,3 の集合に 3 が含まれるか? True(真)
  • 1,2,3 の集合に 5 が含まれるか? False(偽)
  • 1,2,3 の集合に 5 が含まれれないか? True(真)

関連項目




スポンサーリンク