4-4. Pythonの集合型 (set)


1. Pythonの集合型とは?

集合型とは、複数の値を順序関係なく、1つにまとめたものです。
また、重複した値を持つことはできません。

例えば、値が書かれたカードが袋に入っているイメージです。
袋からカードを取り出す時に、どのカードが一番最初に出てくるかわかりません。

Python_集合型_set_イメージ


2. 集合の作り方

集合を作るときは、 要素(集合の中の値)を , カンマ で区切り {} 括弧で囲みます。

  • 集合を作る : {<値1>, <値2>, <値3>, ..... , <値n>}
x = {201, 888, 103, 42}


要素の型は、同じでなくても問題ありません。

x = {1, 0.02, 'ABC'}


空の集合を作るには set() を使います。

x = set()
print(x)
>> set()

3. 集合に要素を追加する (add)

集合に要素を追加するには add() を使います。

  • 集合に要素を追加 : <集合>.add(要素)
x = {1, 3, 8}
x.add(999)

print(x)
>> {8, 1, 3, 999}


4. 集合の要素を削除する (remove, clear)

集合の中の特定の要素を削除するときは remove を使い、全ての要素を削除するときは clear を使います。

  • 集合の特定の要素を削除 : <集合>.remove(<要素>)
  • 集合の要素を全て削除 : <集合>.clear()

# 特定の要素だけ削除
x = {'apple', 'banana', 'orange'}
x.remove('banana')

print(x)
>> {'apple', 'orange'}

# 全ての要素を削除
x = {'apple', 'banana', 'orange'}
x.clear()

print(x)
>> set()


5. 集合と集合を結合して和集合を作る ( | )

集合と集合を結合するには | を使います。
また、集合は重複した要素が排除されるので、両方の集合に存在する要素は1つにまとめられます。
また、このようにして作られる集合を和集合を言います。

  • 集合Aと集合Bの和集合を作成 : <集合A> | <集合B>
x = {'apple', 'banana', 'orange'}
y = {'apple', 'tomato'}

z = x | y
print(z)
>> {'banana', 'apple', 'tomato', 'orange'}


6. 集合の要素数を確認する (len)

集合の要素数を確認するには、len() を使います。

  • 集合の要素数を確認 : len(<集合>)
x = {'banana', 'apple', 'tomato', 'orange'}
print(len(x))
>> 4


7. 集合に特定の要素が存在するか調べる (in)

集合に特定の要素が存在するか調べるには in を使います。
Pythoには bool型 (論理型) があり、真なら True・偽なら False となります。

  • 集合に特定の要素が存在するか調べる : 要素 in 集合
x = {'A', 'B', 'C'}

print('A' in x)
>> True
print('a' in x)
>> False


8. 集合をリスト・タプルに変換する

集合をリストに変換するには、list() を使い、タプルに変換するには tuple() を使います。
集合は順序を持たないので、変換した後のリスト・タプルの要素の並び順序は指定できません。

  • 集合をリストに変換 : list(<集合>)
  • 集合をタプルに変換 : tuple(<集合>)
x = {'A', 'B', 'C'}

# リストに変換
x_list = list(x)
print(x_list)
>> ['C', 'B', 'A']

# タプルに変換
x_tuple = tuple(x)
print(x_tuple)
>> ('C', 'B', 'A')


9. リスト・タプルを集合に変換する

リスト・タプルを集合に変換するには set() を使います。

  • リストを集合に変換 : set(<リスト>)
  • タプルを集合に変換 : set(<タプル>)
# リストを集合に変換
x_list = [1, 9, 10, 11]
x_set = set(x_list)
print(x_set)
>> {1, 10, 11, 9}

# タプルを集合に変換
y_tuple = ('a', 'b', 'c', 'd')
y_set = set(y_tuple)
print(y_set)
>> {'b', 'c', 'd', 'a'}

10. 練習問題

練習問題 4 – d. 集合の操作


11. 参考 Python 公式ドキュメント


このエントリーをはてなブックマークに追加