关于python:如何删除列表中的重复值?

How to delete duplicate values in a list?

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

Possible Duplicate:
How do you remove duplicates from a list in Python whilst preserving order?

让我们考虑一下清单:

1
x = ['a', 'b', 'c', 'c', 'a', 'd', 'z', 'z']

我想删除这些重复值列表-X,结果如下:

1
y = ['a', 'b', 'c', 'd', 'z']


如果订购不重要,请使用一套:

1
2
>>> list(set(['a', 'b', 'c', 'c', 'a', 'd', 'p', 'p']))
['a', 'p', 'c', 'b', 'd']

如果订购确实重要,请使用订购信息:

1
2
3
>>> from collections import OrderedDict
>>> OrderedDict.fromkeys(['a', 'b', 'c', 'c', 'a', 'd', 'p', 'p']).keys()
['a', 'b', 'c', 'd', 'p']


由于没有关于维护秩序的说明,这种方法将起作用:

1
2
3
x = ['a', 'b', 'c', 'c', 'a', 'd', 'z', 'z']

list(set(x))

会给你

1
['a', 'c', 'b', 'd', 'z']

通过将列表更改为set,可以消除所有重复项。应用list()将非重复数据更改回列表。


你也可以用

1
y=[ x[i] for i in range(len(x)) if not x[i] in x[:i]]

我认为这是最简单的解决办法。