Курс 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"
- Компиляция регулярных выражений
- Метод difference_update() — разность множеств
- Циклы for в Python
- Метод is_absolute() для PurePath
- Отслеживание выполнения программы с библиотекой tqdm
- Создание новых списков в Python
- Оператор Walrus: правильное использование
- Извлечение статей с newspaper3k
- Поиск подстроки в строке
- Избегайте двойного подчеркивания
- Проверка условий: all и any
- Конвертация коллекций в Python.
- Concrete Paths — метод .with_suffix()
- Подсчет элементов в Python
- Метод setitem в Python
- Удаление элемента из списка в Python
- GitHub в Telegram: подписка на уведомления
- Изменения в обработке логических значений
- Отладка в командной строке
- Генерация случайных чисел Python
- Установка User-Agent в Python
- Декораторы с аргументами в Python
- Генератор списка с условием if
- Подсчет элементов с помощью Counter из collections
- Базовые объекты Python
- Множественное присваивание в Python
- Перехват исключений в Python
- Измерение времени выполнения кода
- Порядок операций в Python
- Простой калькулятор Python
- Любовь к Python
- Создание комплексных чисел
- Создание таблиц в Python с PrettyTable
- Сравнение def и lambda в Python
- Получение списка кортежей из словаря
- Обход дочерних элементов BeautifulSoup
- Работа с геоданными с помощью geopy
- Объединение словарей в Python 3.5+
- Модуль Operator в Python
- Python Поверхностное Копирование
- Howdoi — получение ответов из терминала
- Скрытие вывода данных
- Работа с CSV файлами
- Переворот строки с помощью срезов















