Middle
40
Что такое итераторы и генераторы в Python и в чем их разница?
Companies where asked
Answer from AI
sobes.tech AI
Итератор в Python — это объект, который реализует метод __iter__() и метод __next__(). Он позволяет последовательно перебирать элементы коллекции без необходимости загружать все данные сразу в память.
Генератор — это специальный вид итератора, который создаётся с помощью функций с ключевым словом yield или генераторных выражений. Генераторы лениво вычисляют значения по мере необходимости, что экономит память и позволяет работать с потенциально бесконечными последовательностями.
Основные отличия:
- Итератор — это общий интерфейс для последовательного обхода элементов.
- Генератор — удобный способ создания итераторов с помощью
yield.
Пример генератора:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Здесь count_up_to — генератор, который возвращает числа от 1 до n по одному за раз.