python是否具有无限整数系列的本机可迭代?
我已经尝试range(float('inf'))
和iter(int)
,但都没有工作。
我显然可以按照
的方式实现自己的生成器def int_series(next=1):
while True:
next += 1
yield next
但这感觉就像应该存在的东西。
答案 0 :(得分:36)
是。它是itertools.count
:
>>> import itertools
>>> x = itertools.count()
>>> next(x)
0
>>> next(x)
1
>>> next(x)
2
>>> # And so on...
您可以指定start
和step
个参数,但stop
不是一个选项(xrange
的用途):
>>> x = itertools.count(3, 5)
>>> next(x)
3
>>> next(x)
8
>>> next(x)
13
答案 1 :(得分:15)
您可以使用itertools.count
。
for x in itertools.count():
# do something with x infinite times
如果您不想使用count()
返回的整数,请更好地使用itertools.repeat
:
for _ in itertools.repeat(None):
# do something infinite times