如何​​for​​在如下所示的循环中访问索引?

ints = [8, 23, 45, 12, 78]
for i in ints:
print('item #{} = {}'.format(???, i))


我想得到以下输出:

item #1 = 8
item #2 = 23
item #3 = 45
item #4 = 12
item #5 = 78


  

解决方案


使用其他状态变量,例如索引变量(通常在C或PHP等语言中使用),被认为是非Python的。

更好的选择是使用内置功能enumerate(),该功能在Python 2和3中均可用:

for idx, val in enumerate(ints):
print(idx, val)


结论
  • Python索引从零开始
  • 要在迭代过程中从迭代器获取这些索引,请使用枚举函数
  • 以惯用方式使用枚举(以及元组拆包)将创建更易读和可维护的代码:

这样做:

for index, item in enumerate(items, start=0):   # Python indexes start at zero
print(index, item)