Курс Python → Раздувающийся словарь в Python
Раздувающийся экземпляр словаря — это явление, которое может наблюдаться при работе с Python. Когда мы создаем несколько словарей и выводим их содержимое, мы можем заметить, что они становятся все больше и больше. Почему это происходит? Дело в том, что в CPython используется оптимизация, позволяющая повторно использовать один и тот же объект «keys» в нескольких словарях. Это было введено в PEP 412 с целью экономии памяти, особенно в случаях, когда ключи словаря повторяются в разных экземплярах.
Оптимизация, позволяющая повторно использовать объект «keys», полностью работает для словарей, но может быть отключена, если нарушаются определенные допущения. Например, если происходит изменение ключей в словаре, то оптимизация может быть отключена, и словарь начнет «раздуваться». Это происходит потому, что CPython больше не может повторно использовать объект «keys» из-за изменений в структуре словаря.
example_dict1 = {'a': 1, 'b': 2}
example_dict2 = {'c': 3, 'd': 4}
print(example_dict1)
print(example_dict2)
В данном примере мы создаем два словаря example_dict1 и example_dict2, каждый из которых содержит пары ключ-значение. При выводе содержимого этих словарей, мы можем увидеть, как они могут «раздуться» из-за оптимизации, применяемой в CPython. Это явление может быть наблюдаемо при работе с большим количеством словарей или при изменении ключей в словаре.
Другие уроки курса "Python"
- Множественное назначение в Python
- Преобразование букв в нижний регистр
- Функция rsplit() в Python
- Создание уникального проекта
- Поиск наиболее частого элемента в списке
- Тип данных TypeVarTuple
- Метод join() для объединения элементов строки
- Метод join() для объединения строк
- Метод __ixor__ для побитового исключающего ИЛИ
- Python Менеджер контекста
- Метод __irshift__ для Python
- Возврат нескольких значений из функции
- Официальный канал Python в Telegram
- Автоматизация действий с Pyautogui
- Метод getitem для доступа к элементам последовательности
- Импорт модуля из другого каталога
- Инверсия списка и строки
- Подсчет вхождений элементов
- Генераторы данных
- Многострочные комментарии в Python
- Оператор assert в Python
- Принципы SRP и OCP
- Добавление Progressbar в Python
- Создание графиков в терминале
- Методы __repr__ и __str__ в Python
- Работа с кортежами
- Проверка дублей в списке.
- Python и Юникод: работа с цифрами
- Проверка запуска скрипта или импорта модуля
- Метод сравнения объектов в Python
- Структуры данных в Python
- Создание именованных кортежей в Python
- Оператор += для объединения строк
- Блок try…finally в Python
- Оператор walrus в Python
- Вычисление времени выполнения
- Цикл for с enumerate() в Python
- Создание и обучение модели с Keras
- Работа с файловой системой в Python
- Декоратор Ajax required
- Метод difference_update() — разность множеств
- Непрерывная проверка в Python
- Метод __call__ в Python
- Преобразование объекта в строку
- Magic Commands — улучшение работы с Python
- Логирование в Python
- Создание и использование ChainMap
- Удаление элемента из списка в Python















