我正在編寫一個程序,刪除列表中的重複項,我只是無法弄清楚如何找到重複的地方?如何刪除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
我正在編寫一個程序,刪除列表中的重複項,我只是無法弄清楚如何找到重複的地方?如何刪除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
您可以使用Python的集()的能力。並以set()實現的相同方式將其傳回列表。
set(lis)
set(my_list)
返回來自my_list
的唯一值。您可以將其轉換回像list(set(my_list))
這樣的列表。
維護訂單的一種方法是使用collections.OrderedDict
。
list(OrderedDict.fromkeys(my_list))
您可以使用set()函數來實現此目的。
a = [1,2,3,4,5,5,5,5,5,5]
print list(set(a)) # [1, 2, 3, 4, 5]
請記住,這可能意志搞砸了你的列表的順序。
這個列表解析會維持秩序,並刪除初始項目後發生的所有重複:
>>> 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]
你需要保持秩序? – wim