将 .index() 与具有重复元素的列表一起使用 [重复]

Posted

技术标签:

【中文标题】将 .index() 与具有重复元素的列表一起使用 [重复]【英文标题】:Using .index() with a list that has repeated elements [duplicate] 【发布时间】:2016-07-30 22:01:37 【问题描述】:

所以我正在检查一个列表并打印所有等于三的值

for item in top:
    if item == 3:
        print('recommendation found at:')
        print(top.index(item))

问题是这只会连续打印第一个值为 3 的元素。如何打印每个值为 3 的元素的位置?

【问题讨论】:

【参考方案1】:

使用enumerate

>>> top = [1, 3, 7, 8, 3, -3, 3, 0]
>>> hits = (i for i,value in enumerate(top) if value == 3)

这是一个生成器,将生成所有索引i,其中top[i] == 3

>>> for i in hits:
...     print(i)
... 
1
4
6

【讨论】:

【参考方案2】:

从 https://docs.python.org/2/tutorial/datastructures.html Index: "返回列表中第一个值为 x 的项目的索引。"

一个简单的解决方案是:

for i in range(len(top)):
    if top[i] == 3:
        print('recommendation found at: ' + str(i))

【讨论】:

以上是关于将 .index() 与具有重复元素的列表一起使用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将列表中的每个项目与Python中另一个列表的所有值一起使用[重复]

将 do() 与列表元素的名称一起使用

将 .on() 与动态添加的元素一起使用时出现问题 [重复]

如何打印列表中具有起始字母“A”的元素[重复]

将 Django 分页器与具有不同显示数量的嵌套模板一起使用

通过重复固定范围的值来扩展列表