Курс 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"
- Переопределение метода __pow__
- Руководство по Pymorphy2
- Непрерывная проверка в Python
- Расчет времени выполнения
- Хранение переменных в словаре.
- Оболочка Python
- Декодирование строк в Python
- Срез в Python
- Блок try-except-else
- Подсчет частотности элементов в Python
- Логирование с Logzero
- Транспонирование матрицы
- Декоратор для группы пользователей в Django
- Проверка версии Python
- Представление бесконечности в Python
- JMESPath в Python
- Создание спинбокса в tkinter
- Функция format() в Python
- Порядок операций в Python
- Инверсия списка и строки
- Метод pop() списка
- Повторение и перенос строки
- Автоматизация действий с Pyautogui
- Работа с URL-адресами в Python
- Работа с YAML в Python: PyYAML.
- Python Тесты и Гайды
- Повторение элементов в Python
- Операции с комплексными числами
- Форматирование строк в Python
- Генераторы в Python
- Комментарии в Python
- Defaultdict в Python
- Метод Enumerate() для списков
- Работа с рекламными данными в Pandas
- Функция с *args.
- Функция reduce() из модуля functools
- Структура данных словарь в Python
- Объединение, распаковка и деструктуризация
- Подсчет элементов в Python
- Использование двоеточия в Python
- Измерение времени выполнения кода
- Упрощение работы с JSON-данными в Python
- Курс Data Scientist в медицине
- Пересечение списков с использованием множеств
- Подсчет часто встречающихся элементов















