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

Что делать с большим списком, который используется только в цикле

В Python для оптимизации памяти лучше использовать генераторы вместо списков, если данные используются только в цикле. Генераторы лениво вычисляют элементы по мере необходимости, не храня весь список в памяти.

Пример:

python
# Плохо - список хранится в памяти целиком
big_list = [x for x in range(1000000)]
for item in big_list:
    process(item)

Лучше - генератор создает элементы на лету

big_gen = (x for x in range(1000000))
for item in big_gen:
process(item)

text

Если данные читаются из файла:
```python
# Вместо чтения всего файла в память
with open('huge_file.txt') as f:
    for line in f:  # файл итерируется построчно
        process(line)

Ключевые преимущества:

  1. Экономия памяти - элементы генерируются по требованию
  2. Возможность обработки бесконечных последовательностей
  3. Более быстрый старт итерации (не нужно ждать создания всего списка)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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