Что происходит под капотом, чтобы иметь размер словаря 72 байта (согласно getsizeof(dict) после вызова .clear() в словаре, когда только что созданный экземпляр возвращает 240 байтов?
Я знаю, что простой dict имеет начальный размер «8» и изменяет свой размер при заполнении ~ 66%, связано ли это с размером после вызова clear?
Я изучаю словари и нашел это довольно интересным, что же происходит на самом деле?
>>> from sys import getsizeof
>>> dict = {}
>>> getsizeof(dict)
240
>>> dict.clear()
>>> getsizeof(dict)
72
>>>






Предполагая, что мы говорим о CPython, ваша интуиция верна. При создании нового словаря пространство ключей выделяется в dict_new размером PyDict_MINSIZE. Это потребляет память. При вызове .clear() пространство ключей повторно подключен становится статически выделенным пустым пространством ключей, что делает словарь действительно пустым.