可能重复:
How do you remove duplicates from a list in Python whilst preserving order?
让我们考虑一下清单:
x = ['a', 'b', 'c', 'c', 'a', 'd', 'z', 'z']
我想删除这些重复值list-x,并希望结果为:
y = ['a', 'b', 'c', 'd', 'z']
答案 0 :(得分:10)
如果订购无关紧要,请使用套装:
>>> list(set(['a', 'b', 'c', 'c', 'a', 'd', 'p', 'p']))
['a', 'p', 'c', 'b', 'd']
如果订购 无关紧要,请使用OrderedDict:
>>> from collections import OrderedDict
>>> OrderedDict.fromkeys(['a', 'b', 'c', 'c', 'a', 'd', 'p', 'p']).keys()
['a', 'b', 'c', 'd', 'p']
答案 1 :(得分:3)
由于没有说明保留秩序,这种方法可行:
x = ['a', 'b', 'c', 'c', 'a', 'd', 'z', 'z']
list(set(x))
会给你
['a', 'c', 'b', 'd', 'z']
将列表更改为set
即可消除所有重复项。您应用list()
将非重复数据更改回列表。
答案 2 :(得分:1)
您也可以使用
y=[ x[i] for i in range(len(x)) if not x[i] in x[:i]]
我认为这可能是最简单的解决方案。