Курс 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"

  1. Представление бесконечности в Python
  2. Namedtuple в Python
  3. Создание функций с произвольным количеством аргументов
  4. Тестирование с responses
  5. Метод rsub для пользовательских чисел
  6. Преобразование чисел в слова
  7. Нан-рефлексивность в Python
  8. Роль object и type в Python
  9. Названия переменных
  10. Codecademy в Telegram
  11. Обработка элементов в Python
  12. Python groupby() из itertools: работа с повторяющимися элементами
  13. Обработка аргументов Python
  14. Модуль math: основные функции
  15. Подписка на SelectelNews в Twitter
  16. Операторы сравнения в Python
  17. Счетчик ссылок в Python
  18. Определение объема памяти объекта
  19. Форматирование чисел в Python
  20. Функция all() в Python
  21. Непрерывная проверка в Python
  22. Форматирование вывода списков
  23. Метод __int__ в Python
  24. Обмен переменными в Jupyter
  25. Работа с базами данных SQLite
  26. Получение пути к текущему скрипту с помощью os
  27. Извлечение чисел из текста
  28. Отправка поздравлений по дню рождения
  29. Измерение времени выполнения кода
  30. Эффективная конкатенация строк в Python
  31. Профилирование данных с Pandas.
  32. Инициализация объекта
  33. Атрибуты массивов в Numpy
  34. Генератор чисел Фибоначчи
  35. Поток данных в Python
  36. Генерация тестовых данных с factory_boy
  37. Функции с дополнением
  38. Избегайте пустого списка
  39. GitHub в Telegram: подписка на уведомления
  40. Базовые объекты Python
  41. Обновление и получение данных в SQLite
  42. Декоратор проверки активности
  43. Python Метод del.
  44. Очистка списка от False, None, 0, «»
  45. Работа с argparse

Marketello читают маркетологи из крутых компаний