2017-07-18 61 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]