原生无限范围?

时间:2014-04-07 13:57:24

标签: python

python是否具有无限整数系列的本机可迭代?

我已经尝试range(float('inf'))iter(int),但都没有工作。

我显然可以按照

的方式实现自己的生成器
def int_series(next=1):
    while True:
        next += 1
        yield next

但这感觉就像应该存在的东西。

2 个答案:

答案 0 :(得分:36)

是。它是itertools.count

>>> import itertools
>>> x = itertools.count()
>>> next(x)
0
>>> next(x)
1
>>> next(x)
2
>>> # And so on...

您可以指定startstep个参数,但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