首页 > 解决方案 > 如何删除列表中重复数字的所有实例?

问题描述

我想要一个删除列表中重复的任何数字的所有实例的代码。

例如:

Inputlist = [2, 3, 6, 6, 8, 9, 12, 12, 14]
 
Outputlist = [2,3,8,9,14]

我已经尝试删除列表中的重复元素(通过使用“唯一”函数),但它仍然在列表中留下了元素的单个实例!

seen = set()
uniq = []
for x in Outputlist:
    if x not in seen:
        uniq.append(x)
        seen.add(x)      
seen

我也浏览了很多 StackOverflow 文章,但它们的不同之处在于他们正在搜索从两个不同列表中删除公共元素,或者他们只希望每个元素的一个实例仍被保留。我想简单地删除所有常见元素。

标签: python

解决方案


您可以使用计数器

>>> from collections import Counter
>>> l = [2, 3, 6, 6, 8, 9, 12, 12, 14]
>>> res = [el for el, cnt in Counter(l).items() if cnt==1]
>>> res
[2, 3, 8, 9, 14]

推荐阅读