Курс 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
- Работа с deque из collections
- Распаковка с оператором *
- Docstring в Python
- Генерация фальшивых данных с Faker
- Простой калькулятор Python
- Извлечение аудио из видео
- Concrete Paths — метод .with_suffix()
- Настройка нарезки списков
- Расчет времени выполнения программы
- Конкатенация строк с join() в Python
- Хранение переменных в Python.
- Работа с множествами в Python
- Разница между датами
- Получение текущей даты и времени с помощью datetime
- Работа с файлами в Python
- Метод __getitem__ в Python
- Применение функции к списку
- Метод join() для объединения элементов строки
- Логирование с Logzero
- Заказ карты Тинькофф Black
- Конкатенация строк в Python
- GitHub в Telegram: подписка на уведомления
- Обход элементов в Python
- Декоратор защиты анонимных пользователей
- Конкатенация строковых литералов
- Оператор «or» в Python
- Удаление дубликатов из списка с помощью dict.fromkeys
- Библиотека Chartify: руководство
- Срез в Python
- Измерение времени выполнения кода в Python
- Закрытие файла в Python
- Метод add для класса Vector
- Структура строк в Python
- Преобразование Word в PDF с Spire.Doc
- Избегайте двойного подчеркивания
- Python Translator: создание локальных переводчиков
- Цикл for с enumerate() в Python
- Метод eq для сравнения объектов
- Декораторы в Python
- Необязательные аргументы в Python
- Форматирование строк с f-строками
- Python Поверхностное Копирование
- Запуск Python из интерпретатора
- Виртуальные среды в Python
- Нан-рефлексивность в Python
- Обновление множества в Python
- Разделение списка на гнппы















