このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】波括弧で集合を作成する

波括弧で集合を作成する

 Pythonでは、集合を作成する際に波括弧({})を利用して、簡潔に複数の要素をまとめることができます。集合は重複する値を持たず、内部の要素の順序が保証されないため、値の存在確認や重複排除の用途に最適です。ただし、空の集合を作成する場合は、{} ではなくset()関数を用いる必要があるなど、いくつかの注意点も存在します。
 ここでは、波括弧を用いた集合リテラルの作成方法と、set()関数を利用した集合生成について、具体例や表を交えながら詳しく解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.波括弧を利用した集合リテラルの作成

1.1. 複数要素の集合リテラル

 波括弧の中に値をカンマで区切って記述することで、複数の要素からなる集合を簡単に作成できます。以下の表は、複数要素の集合リテラルの記述方法をまとめたものです。

ケース記述方法説明
複数要素の集合{値1, 値2, 値3, …}異なる型や同じ型の値を含めることができる。
単一要素の集合{値}1つだけの値からなる集合(値の型は任意)

例えば、以下のプログラムでは、果物の名前をまとめた集合を作成し、変数fruitsに代入しています。

サンプルプログラム

# 複数の果物名を持つ集合を作成する例
fruits = {'apple', 'banana', 'cherry'}
print("fruits:", fruits)

実行結果

fruits: {'banana', 'apple', 'cherry'}

解説

  • 波括弧内に ' apple ', ' banana ', ' cherry ' をカンマで区切って記述することで、複数の要素からなる集合 fruits が生成されます。
  • 集合は内部でハッシュテーブルを利用しているため、出力される要素の順序は必ずしも入力時と一致しません。

1.2. 単一要素の集合リテラル

1つの値だけを持つ集合も、同様に波括弧を利用して作成できます。

サンプルプログラム

# 単一の要素を持つ集合の例
prime = {7}
print("prime:", prime)

実行結果

prime: {7}

解説

  • 波括弧内に単一の値7を記述することで、1要素のみを含む集合 prime が作成されます。
  • 単一要素の場合でも、集合の性質(重複排除、順序非保証)が適用されます。

2.set() 関数を用いた集合の生成

2.1. 空の集合の作成

 空の集合を作成する場合、{}と記述すると空の辞書が生成されてしまうため、set()関数を利用します。

サンプルプログラム

# 空の集合を作成する例
empty_set = set()
print("empty_set:", empty_set)

実行結果

empty_set: set()

解説

  • set()関数を呼び出すことで、空の集合(Setクラスのインスタンス)が生成されます。
  • {}は空の辞書を表すため、空の集合を生成する際は必ずset()を用いる必要があります。

2.2. イテラブルから集合を生成する方法

 set()関数は、イテラブルなオブジェクトから集合を生成することができます。たとえば、文字列は1文字ずつのイテラブルとして扱われるため、重複を自動的に除去した集合を作成できます。

サンプルプログラム

# 文字列から一意な文字の集合を生成する例
word = "mississippi"
unique_chars = set(word)
print("unique_chars:", unique_chars)

実行結果

unique_chars: {'p', 's', 'm', 'i'}

解説

  • 文字列 "mississippi" は、各文字が要素となるイテラブルです。
  • set()関数により、重複する文字は1回だけ保持され、一意な文字だけが集合 unique_chars に格納されます。

まとめ

 ここでは、波括弧を利用した集合リテラルの作成方法と、set()関数を用いた集合生成の手法について解説しました。複数の要素を持つ集合は波括弧内に値をカンマ区切りで記述することで作成でき、単一要素の場合も同様です。
 一方、空の集合は{}ではなくset()を用いる必要があり、またset()関数はイテラブルから容易に一意な要素の集合を作成できるため、重複排除や高速な存在確認が求められるシーンで有用です。これらの基本を理解することで、集合を効果的に活用したプログラムの実装が可能となります。