我会用一个collections.Counter
:
from collections import Counter
x = [1, 2, 2, 2, 3, 4, 5, 6, 6, 7]
counts = Counter(x)
output = [value for value, count in counts.items() if count > 1]
这是另一个版本,它保留了首次复制项目时的顺序,仅假设传入的序列包含可哈希项目,并且它将返回到set
or yeild
被引入到该语言(无论何时)。
def keep_dupes(iterable):
seen = set()
dupes = set()
for x in iterable:
if x in seen and x not in dupes:
yield x
dupes.add(x)
else:
seen.add(x)
print list(keep_dupes([1,2,2,2,3,4,5,6,6,7]))