我想在迭代器迭代时跟踪索引。在 Haskell 中,我可以用无限的整数列表压缩迭代器,[1..]
.但是,我不知道 Python 中有这样的功能。构造如下所示的迭代器的最简单方法是什么?
for (case,i) in zip(data, magic_infinite_list):
print('Case #{}: {}'.format(i,case))
(我知道我可以做一个变量i
并手动递增它,这不是重点——我想知道是否可以用迭代器做到这一点(
你应该使用 enumerate
.请注意,这里的i
是从 0 开始的:
for (i, case) in enumerate(data):
print('Case #{}: {}'.format(i + 1, case))
enumerate()
已经给出,这就是大多数人会使用的。 但是如果你真的想从 1 开始,并得到整数秒,itertools.count()
会生成一个惰性的无限整数序列:
import itertools
for case, i in zip(data, itertools.count(1)):
...