Skip to main content
 首页 » 编程设计

Python之查找并销毁列表中的重复项

2025年05月04日14think

在 Python 中,有没有办法检查列表中的重复项,如果有,则删除它们?我正在寻找这样的东西:

>>> def check(): 
>>>    # put code here 
>>> list = ["foo", "foo", "bar"] 
>>> check(list) 
>>> list 
["foo", "bar"] 
>>> list2 = ["foo", "bar", "example"] 
>>> check(list2) 
>>> list2 
["foo", "bar", "example"] 

提前致谢!

更新:

伙计们,我真的是编程新手,顺序并不重要。所以 for 循环应该没问题。不过还是谢谢了!

请您参考如下方法:

set 在这里可能是更好的数据结构,因为它首先不能有重复项。您还可以将其用作使列表唯一化的工具:

>>> lst = ["bar", "foo", "foo"] 
>>> set(lst) 
set(['foo', 'bar']) 
>>> list(set(lst)) 
['foo', 'bar'] 

或者如果您需要保留顺序,您可以将数据保存在 OrderedDict 中。 :

>>> from collections import OrderedDict 
>>> d = OrderedDict.fromkeys(lst) 
>>> d 
OrderedDict([('bar', None), ('foo', None)]) 
>>> list(d) 
['bar', 'foo'] 

请注意,出于性能原因,更理想的做法是首先使用正确的数据结构,而不是使用原始列表并在使用这些转换之一进行每次操作后从中删除重复项。