iter()

Функция iter() возвращает итератор. В первой форме принимает любой итерируемый объект и создаёт итератор по нему. Во второй форме принимает вызываемый объект и значение-«часовой»: итератор будет вызывать функцию до тех пор, пока её результат не совпадёт с этим значением.

Сигнатура

iter(object)
iter(callable, sentinel)

Параметры:

  • object — итерируемый объект (список, строка, словарь и т.д.).

  • callable — функция без аргументов.

  • sentinel — значение-стоп, при получении которого итерация заканчивается.

Возвращает: объект-итератор.

Примеры

Итератор по списку и ручной вызов next():

nums = [10, 20, 30]
it = iter(nums)
print(next(it))
print(next(it))
print(next(it))
10
20
30

Итератор по строке:

it = iter("ABC")
for ch in it:
    print(ch)
A
B
C

Форма с sentinel-значением — читаем числа, пока не введут 0:

numbers = iter([3, 7, 12, 0, 5, 8])
read = lambda: next(numbers)
for value in iter(read, 0):
    print(value)
3
7
12

Свой класс с поддержкой итерации:

class Countdown:
    def __init__(self, start):
        self.n = start
    def __iter__(self):
        return self
    def __next__(self):
        if self.n <= 0:
            raise StopIteration
        self.n -= 1
        return self.n + 1

for x in iter(Countdown(3)):
    print(x)
3
2
1

См. также

Примечание

Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.