删除python列表中的重复项但记住索引

kkl*_*klw 3 python list python-2.7

如何删除列表中的重复项,保留项目的原始顺序并记住列表中任何项目的第一个索引?

例如,从[1, 1, 2, 3]收益中删除重复项,[1, 2, 3]但我需要记住索引[0, 2, 3].

我使用的是Python 2.7.

tim*_*geb 5

我将稍微区别对待并使用一个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)]
Run Code Online (Sandbox Code Playgroud)

如果您需要列表(删除重复项)和索引,您可以简单地发出:

>>> d.keys()
[1, 2, 3]
>>> d.values()
[0, 2, 3]
Run Code Online (Sandbox Code Playgroud)