在 python 中跟踪索引的正确方法是什么?
现在我正在循环中跟踪我的索引,就像这样
index = 0
for entry in longList:
if entry == 'foo':
print index
index += 1
有更好的方法吗?
Right now I am tracking my index in side the loop like this
index = 0
for entry in longList:
if entry == 'foo':
print index
index += 1
is there a better way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用
enumerate()
内置函数。但是,在您的具体情况下,您可以简单地执行
index = longList.index("foo")
编辑:如果您想查找多个匹配项的索引,就像在纯 Python 中尽可能快,以下代码应该可以解决问题:
Use the
enumerate()
built-in function.However, in your specific case, you can simply do
index = longList.index("foo")
EDIT: If you want to find the indices of multiple matches pretty much as fast as is possible in pure Python, the following code should do the trick:
我喜欢列表理解:)
I like list comprehension :)
是的,最好的方法是这样做:
Yes, the best way is to do this:
使用枚举会是一个更好的主意。
Using enumerate would be a better idea.
如果您的列表确实很长并且是静态的,您应该考虑使用查找表(实际上,索引列表的字典,以条目作为键)。在第一次搜索后,它几乎会收回成本,因为您当前总是迭代所有元素。
If your list is really long and static, you should consider using a lookup table (actually, a dictionary of index lists with the entry as the key). It will almost pay for itself after the first search, since you currently always iterate over all the elements.