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



我想在迭代器迭代时跟踪索引。在 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)):
    ...

相关内容

  • 没有找到相关文章

最新更新