如何删除列表中的重复项,保留项目的原始顺序并记住列表中任何项目的第一个索引?
例如,从[1, 1, 2, 3]
收益中删除重复项,[1, 2, 3]
但我需要记住索引[0, 2, 3]
.
我使用的是Python 2.7.
我将稍微区别对待并使用一个OrderedDict
事实,即list index
方法将返回项目的最低索引.
>>> from collections import OrderedDict >>> lst = [1, 1, 2, 3] >>> d = OrderedDict((x, lst.index(x)) for x in lst) >>> d OrderedDict([(1, 0), (2, 2), (3, 3)]
如果您需要列表(删除重复项)和索引,您可以简单地发出:
>>> d.keys() [1, 2, 3] >>> d.values() [0, 2, 3]