2013-10-17 37 views
0

從Python列表中只檢索非重複元素的最佳選擇是什麼?說我有以下列表:只從列表中檢索非重複元素

lst = [1, 2, 3, 2, 3, 4] 

我想檢索以下:

lst = [1, 4] 

23不在該列表中獨一無二的,所以他們沒有得到檢索)

回答

5

這是一個list comprehension微風:

>>> lst = [1, 2, 3, 2, 3, 4] 
>>> [x for x in lst if lst.count(x) == 1] 
[1, 4] 
>>> 

另外,我建議您不要命名變量list - 它會掩蓋內置。

+0

更改了變量名稱。感謝您的回答。 – linkyndy

+0

這是有效的,但應該警告,由於嵌套循環('count'被實現爲循環),列表性能會隨着列表的增長而變大,因此性能會迅速下降。 –

6

使用collections.Counter可獲得物品計數。與列表理解相結合,只保留一個數。

>>> from collections import Counter 
>>> lst = [1, 2, 3, 2, 3, 4] 
>>> [item for item, count in Counter(lst).items() if count == 1] 
[1, 4]