Встречается на собеседованиях • сегодня

Как написать итератор

В Python итератор — это объект, который реализует протокол итератора, состоящий из методов __iter__() и __next__().

  1. __iter__() возвращает сам объект итератора.
  2. __next__() возвращает следующий элемент или вызывает StopIteration, если элементов больше нет.

Пример простого итератора, который генерирует числа от 0 до заданного предела:

python
class CountIterator:
    def __init__(self, limit):
        self.current = 0
        self.limit = limit

    def __iter__(self):
        return self

    def __next__(self):
        if self.current < self.limit:
            num = self.current
            self.current += 1
            return num
        else:
            raise StopIteration

# Использование:
for num in CountIterator(5):
    print(num)  # 0, 1, 2, 3, 4

Также можно создать итератор с помощью генератора (функции с yield), что проще:

python
def count_generator(limit):
    current = 0
    while current < limit:
        yield current
        current += 1

for num in count_generator(5):
    print(num)  # 0, 1, 2, 3, 4
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы