索引列表中的元素

时间:2018-01-27 06:09:28

标签: python python-2.7

我想获取列表a=[2,4,5,2]中每个元素的索引 当我输入a.index(2)时,我得到0作为输出。如何在Python中以这种方式获取第四个元素的索引?

3 个答案:

答案 0 :(得分:2)

您可以恢复所有索引,如此

indices = [i for i in xrange(len(a)) if a[i] == 2]

答案 1 :(得分:1)

你可以尝试这一点来解决所有问题:

[print i for i,v in enumerate(a) if v==2] # or any number

答案 2 :(得分:1)

您还可以在collections.defaultdict()中存储每个项目的索引:

from collections import defaultdict

a=[2,4,5,2]

indexes = defaultdict(list)
for i, e in enumerate(a):
    indexes[e].append(i)

print(indexes)

给出了:

defaultdict(<class 'list'>, {2: [0, 3], 4: [1], 5: [2]})

然后你可以像这样访问每个项目的索引:

>>> indexes[2]
[0, 3]
>>> for i in indexes[2]:
...     print(i, '-->', a[i])
... 
0 --> 2
3 --> 2

或者@Idlehands在评论中指出,你可以在这里使用dict.setdefault()

indexes = {}
for i, e in enumerate(a):
    indexes.setdefault(e, []).append(i)

print(indexes)

这也给出了:

{2: [0, 3], 4: [1], 5: [2]}