将 .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中另一个列表的所有值一起使用[重复]
将 .on() 与动态添加的元素一起使用时出现问题 [重复]