将.index()与包含重复元素的列表一起使用

时间:2016-04-09 16:55:10

标签: python

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

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

问题是这将继续打印第一个具有值3的元素。如何打印每个元素的每个位置值为3?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

一个简单的解决方案是:

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