如何删除python列表中的重复项

How to remove duplicates in a python list

本问题已经有最佳答案,请猛点这里访问。

我正在编写一个程序,可以删除列表中的重复项,但我无法找出重复项在哪里?

1
2
3
4
5
6
7
#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


set(my_list)返回my_list的唯一值。您可以将其转换回类似于list(set(my_list))的列表。

维护秩序的一种方法是使用collections.OrderedDict

list(OrderedDict.fromkeys(my_list))


此列表理解将保留顺序,并删除初始项之后出现的所有重复项:

1
2
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]

这将删除前面的所有重复项,并按顺序保留其余项:

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


您可以使用set()函数来实现这一点。

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

请记住,这将扰乱您列表的顺序。


您可以使用python的set()功能。并以与set()实现相同的方式将其传输回列表。

1
set(lis)