📜  python - 在列中显示重复值 - Python (1)

📅  最后修改于: 2023-12-03 14:45:53.844000             🧑  作者: Mango

Python - 在列中显示重复值

当我们需要在列中找到重复的值时,我们可以使用Python的一些内置函数来实现这个目的。在本篇文章中,我们将介绍几种不同的方法来在一个列表或散列表中查找重复的值。

方法一:使用循环和count()函数

我们可以使用循环和内置的count()函数来计算每个元素在列表中出现的次数。然后,我们可以将结果存储在另一个列表中,并从中筛选出重复的元素。下面是一个示例代码段:

my_list = [1, 2, 2, 3, 4, 4, 5]
duplicate_items = []

for item in my_list:
    if my_list.count(item) > 1:
        if item not in duplicate_items:
            duplicate_items.append(item)

print("重复项: ", duplicate_items)

输出:

重复项:  [2, 4]
方法二:使用集合

集合是一种数据类型,它只包含不同的元素。因此,当我们将一个列表转换为集合时,它会自动删除所有重复的元素。然后,我们可以使用列表推导式重新将集合转换为列表。

my_list = [1, 2, 2, 3, 4, 4, 5]
duplicate_items = list(set([x for x in my_list if my_list.count(x) > 1]))

print("重复项: ", duplicate_items)

输出:

重复项:  [2, 4]
方法三:使用collections模块的Counter函数

collections模块中的Counter函数可以生成一个包含每个元素出现次数的字典。我们可以使用列表推导式将字典中出现次数大于1的元素提取出来。

from collections import Counter

my_list = [1, 2, 2, 3, 4, 4, 5]
duplicate_items = [item for item, count in Counter(my_list).items() if count > 1]

print("重复项: ", duplicate_items)

输出:

重复项:  [2, 4]
总结

这些都是Python中查找列表中重复项的一些方法。选择哪种方法取决于具体的应用场景和数据规模。在使用集合时,由于集合需要唯一的元素,因此它不能保留列表中元素的原始顺序。在使用循环和count()函数时,当数据规模很大时,它可能会变得很慢。然而,使用collections模块中的Counter函数通常是最快的方法之一。