どうも、ちょげ(@chogetarou)です。
リスト(List)に重複があるかどうかを判定する方法を紹介します。
方法

リストに重複があるかどうか判定する方法は、2つあります。
set()
1つは、set()を使う方法です。
具体的には、リストとset()でセットに変換したリストの要素数を比較します。
len(list) != len(set(list))
リストとセットに変換したリストの要素数が違う場合は重複があります。
逆に、リストとセットに変換したリストの要素数が同じ場合は重複がありません。
使用例
numbers = [3, 5, 1, 2, 4, 1]
if len(numbers) != len(set(numbers)):
print('重複があります')
else:
print('重複はありません')
any() + count()
もう1つは、any()とcount()を使う方法です。
まず、any()を呼び出し、anyの引数にリストをfor-inループを記述します。
そして、for-inループの前に、リストのcount()が1より大きいかどうかを調べる条件式を記述します。
count()の引数には、for-in文で取得した要素を指定します。
any(list.count(i) > 1 for i in list)
上記のany()は、リストに重複がある場合は「True」、重複がなければ「False」を返します。
使用例
numbers = [3, 5, 1, 2, 4, 4]
if any(numbers.count(i) > 1 for i in numbers):
print('重複があります')
else:
print('重複はありません')
まとめ
リスト(List)に重複があるかどうかを判定する方法は、次の2つです。
- set()関数を使う方法
- any()とcount()を使う方法
コメント