Является ли Range итератором
range объекты не являются итераторами
range является итеративным, мы можем получить итератор из него:
iter(range(3)) # <range_iterator object at 0x7f043a0a7f90>
Но сами объекты range не являются итераторами. Мы не можем вызвать next для объекта range:
next(range(3))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'range' object is not an iterator
И в отличие от итератора, мы можем перебрать объект range сколько угодно
numbers = range(3)
tuple(numbers) # (0, 1, 2)
tuple(numbers) # (0, 1, 2)
В отличие от объектов zip, enumerate или generator объекты range не являются итераторами.
Oct. 10, 2023, Источник