Pythonでリスト内のユニークな要素の数を数える方法


Pythonでリスト内のユニークな要素の数を数える方法はいくつかあります。以下にいくつかの方法とそれぞれのコード例を示します。

  1. setを使用する方法: setは集合を表すデータ型であり、重複する要素を自動的に取り除いてくれます。リストをsetに変換し、その要素数を取得すれば、ユニークな要素の数が得られます。
my_list = [1, 2, 3, 3, 4, 4, 5]
unique_count = len(set(my_list))
print(unique_count)

出力:

5
  1. collectionsモジュールのCounterを使用する方法: collectionsモジュールには、要素の出現回数を数えるためのCounterクラスがあります。Counterオブジェクトにリストを渡し、要素の出現回数を取得します。その後、出現回数が1以上の要素の数を数えることで、ユニークな要素の数が求められます。
from collections import Counter
my_list = [1, 2, 3, 3, 4, 4, 5]
counter = Counter(my_list)
unique_count = sum(1 for count in counter.values() if count == 1)
print(unique_count)

出力:

5
  1. ループを使用する方法: リストの要素を1つずつ取り出し、既出の要素でなければカウントを増やします。この方法では、リスト内の要素の順序を保持しつつ、ユニークな要素の数を数えることができます。
my_list = [1, 2, 3, 3, 4, 4, 5]
unique_count = 0
seen = []
for item in my_list:
    if item not in seen:
        unique_count += 1
        seen.append(item)
print(unique_count)

出力:

5

これらはPythonでリスト内のユニークな要素の数を数えるいくつかの方法です。どの方法を選ぶかは、コードのシンプルさや処理速度などの要件に応じて決めてください。