gpt4 book ai didi

python - 如何在不使用 python set 的情况下在列表中查找重复项?

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:29 25 4
gpt4 key购买 nike

我知道我们可以使用 python 中的集合来查找列表中是否有重复项。我只是想知道,我们是否可以在不使用 set 的情况下在列表中找到重复项。

说,我的 list 是

a=['1545','1254','1545']

那怎么找重复的呢?

最佳答案

a=['1545','1254','1545']
from collections import Counter
print [item for item, count in Counter(a).items() if count != 1]

输出

['1545']

此解决方案的运行时间复杂度为 O(N)。如果使用的列表有很多元素,这将是一个巨大的优势。

如果你只是想查找列表是否有重复,你可以简单地做

a=['1545','1254','1545']
from collections import Counter
print any(count != 1 for count in Counter(a).values())

作为@gnibbler suggested , 这将是实际上最快的解决方案

from collections import defaultdict
def has_dup(a):
result = defaultdict(int)
for item in a:
result[item] += 1
if result[item] > 1:
return True
else:
return False

a=['1545','1254','1545']
print has_dup(a)

关于python - 如何在不使用 python set 的情况下在列表中查找重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21925497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com