我有一个看起来像这样的列表:删除与复制的所有项目从列表
[1, 2, 3, 4, 3, 2]
我想删除有重复的所有项目,所以我得到这样的:
[1, 4]
因为2和3有重复。我知道套,但他们没有达到我想要的。有没有一个简短而有效的方法来做到这一点?
我有一个看起来像这样的列表:删除与复制的所有项目从列表
[1, 2, 3, 4, 3, 2]
我想删除有重复的所有项目,所以我得到这样的:
[1, 4]
因为2和3有重复。我知道套,但他们没有达到我想要的。有没有一个简短而有效的方法来做到这一点?
简称:
filtered_list = [x for x in your_list if your_list.count(x) == 1]
有效(大型列表):
counters = dict.fromkeys(your_list, 0)
for item in your_list:
counters[item] += 1
filtered_list = [x for x in your_list if counters[x] == 1]
使用counter
from collections import Counter
myList = [1, 2, 3, 4, 3, 2]
def getUnique(myList):
cnt = Counter()
for item in myList:
cnt[item] += 1
return [i for i in cnt if cnt[i] < 2]
print getUnique(myList)
就可以实现这样的:
import collections
a = [1, 2, 3, 4, 3, 2]
remove = [item for item, count in collections.Counter(a).items() if count > 1]
print([x for x in a if x not in remove])
输出:[1,4]