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