我有一个应该是唯一的字符串列表.我希望能够快速检查重复项.具体来说,我希望能够获取原始列表并生成包含任何重复项目的新列表.我不关心这些项目重复多少次,因此如果有两个重复项,则不必有两次单词.
不幸的是,我想不出一种不那么笨重的方法.有什么建议?
编辑:谢谢你的答案,我想我会澄清一下.我并不关心为它自己制作一份独特的清单.我正在根据文本文件生成列表,我想知道重复项是什么,所以我可以进入文本文件并删除它们,如果有任何显示.
这段代码应该有效:
duplicates = set() found = set() for item in source: if item in found: duplicates.add(item) else: found.add(item)
groupby
来自itertools可能在这里很有用:
from itertools import groupby duplicated=[k for (k,g) in groupby(sorted(l)) if len(list(g)) > 1]
基本上你用它来找到不止一次出现的元素......
NB.sorted
需要调用,因为groupby
只有输入被排序才能正常工作.