こんにちは!
皆さんは、セットという概念をご存知ですか?
セットは集合演算などでよく使われるとても重要な概念です。
今回の記事では、以下の内容について紹介します。
- セット(集合)とは
- セットを{}で作成する方法
- セットをset()で作成する方法
- セットをfrozenset()で作成する方法
セットとは何か
セットは「Pythonで集合を扱う」ためのものです。
集合はあるひとまとまりの集まりのことで、そのまとまりに属するものを要素と呼びます。
つまり、集合は要素の集まりということです。
皆さんなら以下のような図を見たことがありますよね。
このような図は、ベン図と呼ばれており、集合を図示する際によく用いられます。
セットの作成方法
{}で作成する方法
セットは基本的に「{}」で表されます。
そのため{}で要素を囲むことでセットを作成することができます。
以下のプログラムは、セットを作成するプログラムです。
setA = {"A", "B", "C"}
print(setA)
実行結果
{'A', 'C', 'B'}
set()で作成する方法
「set()」を使うことで、セットを作成することができます。
set()を使う利点は、連番のセットを作ったり、リストや文字列などをセットに変換できる点です。
また、リスト等からセットを作成することによって重複が省かれたセットになるため、重複を省くという利点もあります。
以下のプログラムは、set()で様々なセットを作成するプログラムです。
setB = set(range(0, 10, 2))
list = ["1", "2", "3", "2", "3"]
setC = set(list)
setD = set()
print(setB)
print(setC)
print(setD)
解説
setC = set(list)
実行結果
{0, 2, 4, 6, 8}
{'3', '1', '2'}
set()
先ほどのプログラムの実行結果の2行目を見ても、順番がバラバラになっていることがわかります。
集合では、順番に意味を持たないため、順番を保持しない仕様になっています。
frozenset()で作成
「frozenset()」を使うと、変更不可のセットを作成することができます。
以下のプログラムは、frozenset()を使ってセットを作成するプログラムです。
setE = frozenset(["A", "B", "C"])
print(setE)
setE.add("D")
解説
実行結果
frozenset({'B', 'C', 'A'})
Traceback (most recent call last):
File "set_test3.py", line 5, in <module>
setE.add("D")
AttributeError: 'frozenset' object has no attribute 'add'
要素を変更することがないセットは、frozenset()を使って作成することでプログラムの信頼性が高まります。
まとめ
今回の記事では、以下の内容を紹介しました。
- セットとは
→Pythonでの集合のこと - セットを{}で作成する方法
→{}で要素を囲む - セットをset()で作成する方法
→{}で要素を囲むより柔軟に作成可能 - セットをfrozenset()で作成する方法
→変更不可のセットを作成可能
セットの作成方法を覚えて、セットを扱えるようになりましょう!