Курс 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. Методы list в Python
  3. Область видимости переменных
  4. Извлечение данных из JSON
  5. Генераторы в Python
  6. Разделение строк в Python
  7. Освоение Python
  8. Проблемы с dict в Python
  9. Установка максимального количества цифр
  10. enumerate() в Python для работы с индексами
  11. Добавление кнопки в tkinter
  12. Работа с модулем bisect
  13. Названия переменных
  14. Справка по импортированным модулям
  15. Глубокое копирование объектов
  16. Лямбда-функции в цикле
  17. Получение ID текущего процесса
  18. Удаление файлов и папок в Python
  19. Копирование словарей и списков в Python
  20. Объединение списков в Python
  21. Отправка поздравлений по дню рождения
  22. Метод join() для объединения элементов строки
  23. Декораторы в Python
  24. Удаление дубликатов из списка с помощью dict.fromkeys
  25. Извлечение новостей с newspaper3k
  26. Работа с YAML в Python
  27. Работа с кортежами
  28. Удаление знаков препинания в Python
  29. Измерение времени выполнения кода в Python
  30. Bootle — простой веб-фреймворк
  31. Работа с изображениями PIL
  32. Оператор обр. импликации
  33. Применение функции к списку
  34. Округление дробей в Python
  35. Работа с пользовательским вводом
  36. Генераторы в Python
  37. Работа с комплексными числами
  38. Списки: объединение, изменение
  39. Работа с рекламными данными в Pandas
  40. Преобразование чисел в восьмеричную строку
  41. Объединение объектов в Python
  42. Применение функции к элементам списка
  43. Значения по умолчанию в Python
  44. Копирование объектов в Python
  45. Работа с NumPy
  46. Преобразование PowerPoint в PDF.
  47. Итераторы в Python

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