Курс 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
- Перевод текста с Python Translator
- Списки в Python: синтаксис представления
- Python Ellipsis использование
- Вывод с переменной через запятую
- Генераторы данных
- Логические операторы в Python
- Комментарии в Python.
- Синхронизация доступа к ресурсам
- Протокол управления контекстом
- Операторы объединения в Python 3.9
- Переменная Шредингера
- Обработка исключений в Python
- JMESPath в Python
- Возврат нескольких значений
- Генераторные функции в Python
- Создание функций высшего порядка
- Работа с датами в Python
- Работа с пакетами
- Pretty-printing JSON в Python
- Запуск Python из интерпретатора
- Печать календаря
- Преобразование списка в словарь через генератор
- Управление пакетами с pip
- Справка по импортированным модулям
- Работа с кортежами в Python
- Тестирование с responses
- Списки в Python: основы
- Сортировка HTML по CSS-селектору
- Расширение информации об ошибке в Python
- Декораторы для регистрации функций
- Оператор «моржа» (Walrus Operator)
- Просмотр атрибутов и методов класса
- Метод сравнения объектов в Python
- Вакансии в Nebius
- Функции с необязательными аргументами
- Работа с NumPy
- Управление IP-адресами через прокси
- Работа с асинхронными задачами в Python
- Фильтрация списка чисел
- Работа с WindowsPath()
- Открытие, чтение и закрытие файла
- Конкатенация строковых литералов
- Создание списка дат















