如何删除列表中的重复值?

2024-06-17 09:06:54 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
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']

Tags: infromyouorderdoremovelisthow
3条回答

你也可以用

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

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

如果排序无关紧要,请使用集合:

>>> 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']

由于没有任何关于维护秩序的规定,这种方法将起作用:

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

list(set(x))

会给你

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

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

相关问题 更多 >