Back to questions
Junior — Middle
75
Объясните отличия между генератором и списком в Python по функциональности и использованию
Answer from AI
sobes.tech AI
Генератор и список в Python отличаются по способу хранения и выдачи элементов:
-
Список (list) — это коллекция, которая хранит все элементы в памяти сразу. Можно обращаться к элементам по индексу, изменять их, итерироваться несколько раз.
-
Генератор (generator) — это итератор, который генерирует элементы по одному «на лету» при итерации, не сохраняя весь набор в памяти. Это экономит память при работе с большими данными.
Пример:
# Список
numbers_list = [x * x for x in range(5)] # [0, 1, 4, 9, 16]
# Генератор
numbers_gen = (x * x for x in range(5))
print(numbers_list[2]) # Можно обратиться по индексу
for num in numbers_gen:
print(num) # Выведет квадраты от 0 до 16
Генератор нельзя индексировать или повторно итерировать без создания нового объекта, зато он эффективен при работе с большими или бесконечными последовательностями.