我需要从列表中删除重复项,但返回相同的列表。 所以选项如:
return list(set(list))
对我不起作用,因为它会创建一个新列表。
def remove_extras(lst):
for i in lst:
if lst.count(i)>1:
lst.remove(i)
return lst
这是我的代码,它适用于某些情况,但我不明白为什么它不适用于remove_extras([1,1,1,1]),因为当计数为1时它返回[1,1]应该是> 1。
答案 0 :(得分:2)
创建新列表后,可以使用切片分配替换列表中的内容。如果结果顺序无关紧要,您可以使用set
:
def remove_duplicates(l):
l[:] = set(l)
l = [1, 2, 1, 3, 2, 1]
remove_duplicates(l)
print(l)
输出:
[1, 2, 3]
答案 1 :(得分:0)
您可以使用Address server started
harris@ics.uci.edu
joe@cnn.com
来实现此目的,在保持列表顺序的同时删除重复项。
OrderedDict
这有一个运行时: O(N)