2017-07-18 59 views
0

我有一个看起来像这样的列表:删除与复制的所有项目从列表

[1, 2, 3, 4, 3, 2] 

我想删除有重复的所有项目,所以我得到这样的:

[1, 4] 

因为2和3有重复。我知道套,但他们没有达到我想要的。有没有一个简短而有效的方法来做到这一点?

回答

1

简称:

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] 
0

使用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) 
0

就可以实现这样的:

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]