Курс 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. Переопределение метода __pow__
  2. Руководство по Pymorphy2
  3. Непрерывная проверка в Python
  4. Расчет времени выполнения
  5. Хранение переменных в словаре.
  6. Оболочка Python
  7. Декодирование строк в Python
  8. Срез в Python
  9. Блок try-except-else
  10. Подсчет частотности элементов в Python
  11. Логирование с Logzero
  12. Транспонирование матрицы
  13. Декоратор для группы пользователей в Django
  14. Проверка версии Python
  15. Представление бесконечности в Python
  16. JMESPath в Python
  17. Создание спинбокса в tkinter
  18. Функция format() в Python
  19. Порядок операций в Python
  20. Инверсия списка и строки
  21. Метод pop() списка
  22. Повторение и перенос строки
  23. Автоматизация действий с Pyautogui
  24. Работа с URL-адресами в Python
  25. Работа с YAML в Python: PyYAML.
  26. Python Тесты и Гайды
  27. Повторение элементов в Python
  28. Операции с комплексными числами
  29. Форматирование строк в Python
  30. Генераторы в Python
  31. Комментарии в Python
  32. Defaultdict в Python
  33. Метод Enumerate() для списков
  34. Работа с рекламными данными в Pandas
  35. Функция с *args.
  36. Функция reduce() из модуля functools
  37. Структура данных словарь в Python
  38. Объединение, распаковка и деструктуризация
  39. Подсчет элементов в Python
  40. Использование двоеточия в Python
  41. Измерение времени выполнения кода
  42. Упрощение работы с JSON-данными в Python
  43. Курс Data Scientist в медицине
  44. Пересечение списков с использованием множеств
  45. Подсчет часто встречающихся элементов

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