Этот вопрос проверяет знание механизма итераторов и их роли в работе с последовательностями в Python.
Итератор — это объект, который поддерживает протокол итерации. Он имеет методы __iter__() и __next__(). Итераторы позволяют последовательно получать элементы коллекции, например, списка или строки, без необходимости загружать их все сразу в память.
Итератор — это объект, который реализует методы __iter__() (возвращает сам объект) и __next__() (возвращает следующий элемент последовательности). Итераторы полезны для работы с большими данными или потоками, где нельзя сразу загрузить всё в память.
Пример создания и использования итератора:
my_list = [1, 2, 3]
iterator = iter(my_list) # Получаем итератор
print(next(iterator)) # 1
print(next(iterator)) # 2
print(next(iterator)) # 3Пример пользовательского итератора:
class Counter:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current > self.end:
raise StopIteration
self.current += 1
return self.current - 1
counter = Counter(1, 5)
for number in counter:
print(number) # 1, 2, 3, 4, 5