如何压缩具有无限范围的迭代器?

Ell*_*sky 4 python iterator range python-3.x

我想在迭代迭代器时跟踪索引。在 Haskell 中,我可以用无限的整数列表来压缩迭代器[1..]。但是,我不知道 Python 中有这样的功能。构造如下所示的迭代器的最简单方法是什么?

for (case,i) in zip(data, magic_infinite_list):
    print('Case #{}: {}'.format(i,case))
Run Code Online (Sandbox Code Playgroud)

(我知道我可以创建一个变量i并手动递增它,这不是重点——我想知道是否可以使用迭代器来做到这一点)

小智 5

你应该使用enumerate. 请注意,这里i是从 0 开始的:

for (i, case) in enumerate(data):
    print('Case #{}: {}'.format(i + 1, case))
Run Code Online (Sandbox Code Playgroud)