[解決!Python]集合を作成するには解決!Python

Pythonで集合を作成するには波かっこやset関数や内包表記を使う。それらの方法と注意点を簡単に紹介する。

» 2023年04月18日 05時00分 公開
[かわさきしんじDeep Insider編集部]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「解決!Python」のインデックス

連載目次

# 波かっこを使って集合を作成
s = {0, 1, 2# 波かっこ内に集合の要素を記述
print(s)  # {0, 1, 2}

# 集合の要素は重複しない
s = {0, 0, 1, 2}
print(s)  # {0, 1, 2}

# 集合の要素には順序がない
s = {'foo', 'bar', 'baz'}
print(s)  # {'foo', 'baz', 'bar'}など

# 集合の要素はハッシュ可能である必要がある
s = {[0, 1], [2, 3]}  # TypeError

# set関数を使って集合を作成
s = set()  # 空の集合
print(s)  # set()

d = {}  # {}は空の集合ではなく、空の辞書を作成する
print(s == d)  # False
print(type(d))  # <class 'dict'>

s = set(['foo', 'bar', 'baz'])  # 集合の要素を含む反復可能オブジェクトを与える
print(s)  # {'foo', 'baz', 'bar'}

s = set('foo'# 文字列は反復可能オブジェクト
print(s)  # {'f', 'o'}

# 集合内包表記
s = {x * 2 for x in range(4)}
print(s)  # {0, 2, 4, 6}


集合を作成するには

 集合を作成するには幾つかの方法がある。

  • 集合の要素を波かっこ「{}」内にカンマで区切って並べる
  • set関数を使用する
  • 集合内包表記を使用する

 以下ではこれらの方法を見ていこう。

波かっこを使って集合を作成する

 集合を作成する最も簡単な方法は波かっこの内部に、その要素をカンマ区切りで並べていくことだ。以下に例を示す。

s = {0, 1, 2# 波かっこ内に集合の要素を記述
print(s)  # {0, 1, 2}


 この例では集合の要素となる3つの整数値をカンマ区切りで並べている。注意したいのは、集合では同一の要素が重複することがない点だ。以下に例を示す。

s = {0, 0, 1, 2}
print(s)  # {0, 1, 2}


 ここでは、整数値「0」を2つ波かっこの中に記述しているが、同一の要素が重複することがないので、整数値「0」は集合sには1つだけ存在するようになる。

 また、集合の要素には順序もない。集合の要素を取り出そうというときにどんな順番でそれらが出現するかは分からない。例えば、以下の集合sは「{'foo', 'bar', 'baz'}」という順番で要素を並べているが、print関数でその内容を表示したときに作成時とは異なる順番で要素が表示されるかもしれない(し、作成時と同じ順番で表示されるかもしれない)。

s = {'foo', 'bar', 'baz'}
print(s)  # {'foo', 'baz', 'bar'}など


 最後に集合の要素はハッシュ可能である必要がある。文字列や数値はハッシュ可能だが、リストは変更可能でありハッシュ可能ではない。そのため、リストを集合の要素とすることはできない。

 以下に例を示す。

s = {[0, 1], [2, 3]}  # TypeError


 リストを集合の要素としようとすると、TypeError例外が発生する。

set関数を使って集合を作成する

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。