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.