2013-10-18 229 views
-3

我正在編寫一個程序,刪除列表中的重複項,我只是無法弄清楚如何找到重複的地方?如何刪除python列表中的重複項

#list 
lis=[1,2,45,223,1,23,546,488,223,5688] 
print(lis,"Im going to remove the duplicate numbers.") 
#check for duplicates 

#removes duplicates 
#print list 
+0

你需要保持秩序? – wim

回答

0

您可以使用Python的集()的能力。並以set()實現的相同方式將其傳回列表。

set(lis) 
7

set(my_list)返回來自my_list的唯一值。您可以將其轉換回像list(set(my_list))這樣的列表。

維護訂單的一種方法是使用collections.OrderedDict

list(OrderedDict.fromkeys(my_list))

1

您可以使用set()函數來實現此目的。

a = [1,2,3,4,5,5,5,5,5,5] 
    print list(set(a)) # [1, 2, 3, 4, 5] 

請記住,這可能意志搞砸了你的列表的順序。

3

這個列表解析會維持秩序,並刪除初始項目後發生的所有重複:

>>> lis=[1,2,45,223,1,23,546,488,223,5688] 
>>> [el for i, el in enumerate(lis) if el not in lis[:i]] 
[1, 2, 45, 223, 23, 546, 488, 5688] 

這將刪除所有前面的重複,留下其餘的依次是:

>>> [el for i, el in enumerate(lis) if el not in lis[i+1:]] 
[2, 45, 1, 23, 546, 488, 223, 5688]