Сколько занимает в памяти `{i: i for i in range(1_000_000)}` примерно? И `[i for i in range(1_000_000)]`?
Pythonhardsenior
Варианты ответа
dict ~50 MB, list ~8 MB. Dict хранит hash-table с buckets под расширение (load factor ≈ 2/3), list — компактный массив из 8-байтных PyObject указателей
dict ~8 MB, list ~50 MB. List резервирует место под expansion с capacity-doubling, dict хранит компактнее через open addressing и оптимизации dict.clear()
Оба ~16 MB. Python использует одинаковую memory-layout стратегию для всех container-типов начиная с Python 3.7, разница только в methods и API
dict ~100 MB, list ~30 MB. Dict хранит дубли key+value в двух местах для O(1) lookup, list использует skip-list для оптимизации операций insert/delete
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
2475 вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.