在列表中查找项目索引

ila*_*pad 1 python indexing loops list

这是一个非常简单的问题,但我似乎无法理解为什么我没有得到它.

def listindex():
    li = ['a', 'e', 'a', 'd', 'b', 'a', 'e']
    for x in li:
        if x == 'a':
            print(li.index(x))
Run Code Online (Sandbox Code Playgroud)

结果:

0
0
0
Run Code Online (Sandbox Code Playgroud)

预期结果:

0
2
5
Run Code Online (Sandbox Code Playgroud)

虽然它迭代了所有项目我只得到第一项索引,为什么呢?即使它非常简单,也建议.

Bha*_*Rao 6

index仅返回第一个元素的索引.来自文档

返回值为x的第一个项的列表中的索引.如果没有这样的项目则是错误的.

enumerate改用.使用枚举进行迭代时,可以在循环上访问元素及其索引:

>>> li = ['a', 'e', 'a', 'd', 'b', 'a', 'e']
>>> for i,element in enumerate(li):
...     if element == 'a':
...        print(i)
... 
0
2
5
Run Code Online (Sandbox Code Playgroud)