Подтвердить что ты не робот

Собственный бесконечный диапазон?

Имеет ли python собственный итерабель из бесконечного целочисленного ряда?

Я пробовал range(float('inf')) и iter(int), но не работал.

Я, очевидно, могу реализовать собственный генератор по строкам

def int_series(next=1):
    while True:
        next += 1
        yield next

но это похоже на то, что уже должно существовать.

4b9b3361

Ответ 1

Да. Это 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

Ответ 2

Вы можете использовать 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