You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python循环中同时获取元素及对应索引?(类Go range)

Python同时获取元素与索引的正确实现

你的错误代码:

resources = ["a", "b", "c"]
for alph, i in resources, range(len(resources)):
     print(alph)
     if i == 2:
         print(2)

这段代码的问题在于循环的迭代对象是(resources, range(len(resources))),这是一个包含两个元素的元组。第一次迭代时,会把整个resources列表赋值给alph,把range对象赋值给i,完全不符合你想要的“元素映射到alph,索引映射到i”的需求。

你想要的类似Golang中range的功能,Python里用内置函数enumerate()就能轻松实现,它专门用于遍历可迭代对象时同时获取索引和对应元素。

正确实现代码

resources = ["a", "b", "c"]
for i, alph in enumerate(resources):
    print(alph)
    if i == 2:
        print(2)

这段代码的运行效果和你给出的Golang示例一致:

  • 每次迭代,i会拿到当前元素的索引,alph拿到对应的元素
  • 当索引i等于2时,会额外打印2

如果你需要索引从非0的数值开始(比如从1计数),还可以给enumerate()传入start参数:

for i, alph in enumerate(resources, start=1):
    print(f"索引{i},元素{alph}")

你给出的Golang参考代码

resources := ["a", "b", "c"]
for incrementer, alph := range resources {
     fmt.Print(alph)
     if i == 2 {
         fmt.Print(2)
     }
}

内容的提问来源于stack exchange,提问作者Nicholas Davis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 16:50:35