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

【Python入門】集合の要素数を取得する(len関数)

集合の要素数を取得する(len関数)

 Pythonでは、組み込み関数である len 関数を利用して、リストや文字列と同様に集合(set)の要素数を簡単に取得できます。集合は重複しない要素を持つイテラブルなデータ構造であり、そのサイズを把握することは、データの検証や操作の際に非常に有用です。ここでは、len 関数を用いた集合の基本的な要素数の取得方法と、集合を他のデータ構造へ変換する応用例について、具体例を交えながら解説します。

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

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

1.len 関数を使った基本的な要素数の取得

ここでは、単一の集合に対して len 関数を用いて要素数を取得する方法について説明します。

1.1. 単一集合の要素数を取得する方法

たとえば、動物の名前を表す集合を定義し、その中に含まれる動物の数を取得する例を考えます。

サンプルプログラム

# 動物の名前を格納した集合を定義
animals = {'dog', 'cat', 'rabbit', 'hamster'}

# 集合 'animals' の要素数を取得
num_animals = len(animals)
print("animals の要素数:", num_animals)
# 出力例: animals の要素数: 4

実行結果

animals の要素数: 4

解説

  • この例では、{'dog', 'cat', 'rabbit', 'hamster'} のように、重複しない4つの要素からなる集合を定義しています。
  • len(animals) を実行すると、集合に含まれるユニークな要素の数(この場合は 4)が返されます。

1.2. 複数集合の和集合の要素数を取得する応用例

 集合同士の演算(例えば和集合)を行った結果に対しても len 関数は適用できます。次の例では、2つの集合の和集合を作成し、その要素数を取得します。

サンプルプログラム

# 集合 a と b を定義(例:ペットの種類)
a = {'dog', 'cat', 'parrot'}
b = {'cat', 'fish', 'turtle'}

# a と b の和集合を求める
union_set = a | b
print("和集合:", union_set)
# 出力例: 和集合: {'dog', 'cat', 'parrot', 'fish', 'turtle'}

# 和集合の要素数を取得
num_union = len(union_set)
print("和集合の要素数:", num_union)
# 出力例: 和集合の要素数: 5

実行結果

和集合: {'turtle', 'dog', 'fish', 'cat', 'parrot'}
和集合の要素数: 5

解説

  • 演算子 | を使用することで、集合 a または b に含まれるすべての要素からなる新しい集合(和集合)を作成します。
  • len(union_set) により、重複なく統合された集合の要素数が得られます。

2.集合を他のデータ構造として利用する応用例

 集合はイテラブルなデータ構造であるため、文字列の連結やリストへの変換、反復処理など、さまざまな用途に活用できます。

2.1. 集合から文字列への変換

 join メソッドを利用すると、集合の各要素を指定した区切り文字で連結して1つの文字列にすることができます。次の例では、集合 animals の要素をハイフン("-")で連結しています。

サンプルプログラム

# animals 集合の要素を '-' で連結して文字列に変換する
animals_str = '-'.join(animals)
print("連結した文字列:", animals_str)
# 出力例: 連結した文字列: dog-cat-rabbit-hamster

実行結果

連結した文字列: cat-hamster-dog-rabbit

解説

  • join メソッドは、集合内の各要素を指定した文字列で区切りながら連結します。
  • ただし、集合は順序が保証されないため、出力される順序は実行ごとに変わる可能性があります。

2.2. 集合からリストへの変換と for 文での反復処理

 集合を list 関数に渡すことでリストに変換でき、順序付きのデータとして利用することが可能です。また、for 文を用いれば、集合の各要素に対して処理を行うこともできます。

サンプルプログラム

# animals 集合をリストに変換する
animals_list = list(animals)
print("リストに変換:", animals_list)
# 出力例: リストに変換: ['dog', 'cat', 'rabbit', 'hamster']

# for 文を使って、集合の各要素を出力する
print("animals の各要素:")
for animal in animals:
    print(animal)

実行結果

リストに変換: ['cat', 'hamster', 'dog', 'rabbit']
animals の各要素:
cat
hamster
dog
rabbit

解説

  • list(animals) により、集合の要素がリストとして格納され、後からインデックスによるアクセスやソートなどが可能になります。
  • for animal in animals: によって、集合内の各要素が一つずつ変数 animal に割り当てられ、反復処理が行われます。

まとめ

 len 関数を使えば、集合に含まれるユニークな要素数を簡単に取得でき、データの規模を把握するのに役立ちます。

  • 基本操作: 単一の集合に対して len 関数を適用することで、要素数を迅速に確認できます。
  • 応用例: 和集合などの集合演算の結果にも len 関数を適用して、異なる集合間での要素数の違いを比較できます。
  • イテラブルとしての利用: 集合は join メソッドや list 関数、for 文と組み合わせることで、柔軟に文字列やリスト、ループ処理などにも活用可能です。

 これらの特性を活かして、集合を用いた効率的なデータ操作や検証が行えるため、プログラム設計の幅が広がります。