Python: セット(集合)を作成する方法
Pythonでセット(集合)を作成する方法を紹介します。
セット(集合)もリストやタプルと同じように複数のデータを 一つにまとめるデータ型です。 ただし「重複した要素を持たない」のがセットの特徴です。 さらに添字やキーという概念は無く値のみなので、 特定の要素を参照する方法がありません。
セットを作成する場合はディクショナリ(辞書)と同じく波括弧{}を使います。
セット名 = {値1, 値2, 値3}
セットの具体的な作成例は次の通りです。
2つ目の s2のように文字列と数値を混在させることもできますが、
通常は混在させません。
s1 = {"a", "b", "c", "d"} s2 = {"a", 1, "b", 2}
要素が重複している場合
セットを作成する際に要素が重複している場合は、 重複要素が自動的に取り除かれます。
次のコードは作成する際に"a"が重複していますが、 自動的に取り除かれ {"a", "b", "c"} のセットとなっています。
s = {"a", "b", "c", "a"} print(s) # {'a', 'b', 'c'}
空のセットを作成する
空のセットを作成する場合、 波括弧を使って「{}」と記述するとdict型と見なされます。 空のセットは set()コンストラクタを使います。
d = {} print(type(d)) # <class 'dict'> # 空のセット s = set() print(type(s)) # <class 'set'>
セットの要素数が多い場合の記述方法
セットの要素数が多い場合、1行で無理やり書くと見にくくなります。 その場合は複数行にして書くことができます。
s = {"spring", "summer", "autumn", "winter"} print(len(s)) # 4
ディクショナリと同じように波括弧{}の中では\記号を付けることなく 改行できます。
set()で作成する
セットのコンストラクタset()を使って作成することもできます。
set(イテラブルなオブジェクト)
引数はイテラブルなオブジェクトです。 set()の引数として単純に「"a", "b", "c", "d"」と指定してもエラーとなります。 "abcd"を指定した場合は{"a", "b", "c", "d"}のセットが作成されます。 ディクショナリを指定した場合はキー部分のセットとなります。
次のサンプルコードはset()を使った具体的なセット作成例です。 セットは順序が保証されないため、代入した時の順番と 表示する時の順番が異なる場合があります。
# エラーとなる記述方法 s1 = set("a", "b", "c", "d") #エラー # 文字列を指定 s2 = set("abcd") print(s2) # {'b', 'a', 'c', 'd'} # リストを指定 s3 = set(["a", "b", "c", "d"]) print(s3) # {'b', 'a', 'c', 'd'} # ディクショナリを指定 d = {"a": 1, "b": 2, "c": 3, "d": 4} s4 = set(d) print(s4) # {'b', 'a', 'c', 'd'} s5 = set() print(s5) # set()