Курс 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
- Namedtuple в Python
- Создание функций с произвольным количеством аргументов
- Тестирование с responses
- Метод rsub для пользовательских чисел
- Преобразование чисел в слова
- Нан-рефлексивность в Python
- Роль object и type в Python
- Названия переменных
- Codecademy в Telegram
- Обработка элементов в Python
- Python groupby() из itertools: работа с повторяющимися элементами
- Обработка аргументов Python
- Модуль math: основные функции
- Подписка на SelectelNews в Twitter
- Операторы сравнения в Python
- Счетчик ссылок в Python
- Определение объема памяти объекта
- Форматирование чисел в Python
- Функция all() в Python
- Непрерывная проверка в Python
- Форматирование вывода списков
- Метод __int__ в Python
- Обмен переменными в Jupyter
- Работа с базами данных SQLite
- Получение пути к текущему скрипту с помощью os
- Извлечение чисел из текста
- Отправка поздравлений по дню рождения
- Измерение времени выполнения кода
- Эффективная конкатенация строк в Python
- Профилирование данных с Pandas.
- Инициализация объекта
- Атрибуты массивов в Numpy
- Генератор чисел Фибоначчи
- Поток данных в Python
- Генерация тестовых данных с factory_boy
- Функции с дополнением
- Избегайте пустого списка
- GitHub в Telegram: подписка на уведомления
- Базовые объекты Python
- Обновление и получение данных в SQLite
- Декоратор проверки активности
- Python Метод del.
- Очистка списка от False, None, 0, «»
- Работа с argparse















