我希望在遍历迭代器时跟踪索引。在Haskell中,我可以使用无限的整数列表[1..]
来压缩迭代器。但是,我不知道Python中的这类功能。构造迭代器的最简单方法是什么,如下所示?
for (case,i) in zip(data, magic_infinite_list):
print('Case #{}: {}'.format(i,case))
(我知道我可以创建变量i
并手动递增它,这不是重点 - 我想知道是否可以使用迭代器来实现这一点)
答案 0 :(得分:3)
您应该使用enumerate
。请注意,此处i
基于0:
for (i, case) in enumerate(data):
print('Case #{}: {}'.format(i + 1, case))
答案 1 :(得分:2)
enumerate()
,这就是大多数人会使用的。但是如果你真的想从1开始,并获得整数秒,itertools.count()
会生成一个懒惰的无限整数序列:
import itertools
for case, i in zip(data, itertools.count(1)):
...