您的位置:首页 > 编程语言 > Python开发

[python] 查找列表中重复的元素

2018-03-06 11:42 531 查看
stackoverflow

已有列表:
a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]写法1:import collections
print [item for item, count in collections.Counter(a).items() if count > 1]
## [1, 2, 5]但是 Counter 效率不高,写法2:seen = set()
uniq = []
for x in a:
if x not in seen:
uniq.append(x)
seen.add(x)第3种写法比第2种写法更为紧凑,但这种写法不那么直观:seen = set()
uniq = [x for x in a if x not in seen and not seen.add(x)] 上面是翻译的,我自己的写法:a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
b = set(a)
for each_b in b:
count = 0
for each_a in a:
if each_b == each_a:
count += 1
print(each_b, ": ", count)

# 运行结果:
# 1 :  2
# 2 :  2
# 3 :  1 # 没有重复
# 5 :  4
# 6 :  1 # 没有重复
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: