リストから重複する値を見つける Python

リスト内の重複値を検出する方法はいくつかあります。

構文一:ループとカウンタを使用する

def find_duplicates(lst):
    duplicates = []
    for item in lst:
        if lst.count(item) > 1 and item not in duplicates:
            duplicates.append(item)
    return duplicates

# 示例用法
my_list = [1, 2, 3, 4, 2, 3, 5]
print(find_duplicates(my_list))  # 输出: [2, 3]

方法2:集合を使用する

def find_duplicates(lst):
    return list(set([x for x in lst if lst.count(x) > 1]))

# 示例用法
my_list = [1, 2, 3, 4, 2, 3, 5]
print(find_duplicates(my_list))  # 输出: [2, 3]

方法3:collections.Counter クラスを使用する

from collections import Counter

def find_duplicates(lst):
    counter = Counter(lst)
    return [item for item, count in counter.items() if count > 1]

# 示例用法
my_list = [1, 2, 3, 4, 2, 3, 5]
print(find_duplicates(my_list))  # 输出: [2, 3]

これらのメソッドは全てリスト内の重複する値を見つけることは可能ですが、どれを使用するかは個人的な好みと状況によって異なります。

bannerAds