繁体   English   中英

在列表中查找项目索引

[英]Find item index in list

这是一个非常简单的问题,但我似乎无法理解为什么我不明白。

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

结果:

0
0
0

预期结果:

0
2
5

尽管遍历所有我仅获得第一项索引的项目,但为什么呢? 还建议,即使它非常简单。

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
li = ['a', 'e', 'a', 'd', 'b', 'a', 'e']

使用列表理解:

[i for i, x in enumerate(li) if x=='a']

输出: [0, 2, 5]

使用关键字enumerate()会生成一个从0到N的计数器。

for i, x in enumerate(li):

因此, i将包含li的索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM