import itertools itertools.count(start=0, step=1)
Функция count()
модуля itertools
создает бесконечный итератор, который возвращает равномерно распределенные значения, начиная с номера start
с шагом step
.
Часто используется в качестве аргумента функции map()
для генерации последовательных значений данных. Также используется с функцией zip()
для добавления порядковых номеров.
Функция itertools.count()
примерно эквивалентна следующему коду:
def count(start=0, step=1): # count(10) --> 10 11 12 13 14 ... # count(2.5, 0.5) -> 2.5 3.0 3.5 ... n = start while True: yield n n += step
При подсчете с числами с плавающей запятой иногда можно добиться большей точности, подставляя мультипликативный код, такой как: (start + step * i for i in count())
.
>>> from itertools import count >>> for i in count(10): ... print(i, end=' ') ... if i > 16: ... print() ... break # 10 11 12 13 14 15 16 17 >>> for i in count(10, 0.5): ... print(i, end=' ') ... if i > 13: ... print() ... break # 10 10.5 11.0 11.5 12.0 12.5 13.0 13.5