Курс 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. Компиляция регулярных выражений
  2. Метод difference_update() — разность множеств
  3. Циклы for в Python
  4. Метод is_absolute() для PurePath
  5. Отслеживание выполнения программы с библиотекой tqdm
  6. Создание новых списков в Python
  7. Оператор Walrus: правильное использование
  8. Извлечение статей с newspaper3k
  9. Поиск подстроки в строке
  10. Избегайте двойного подчеркивания
  11. Проверка условий: all и any
  12. Конвертация коллекций в Python.
  13. Concrete Paths — метод .with_suffix()
  14. Подсчет элементов в Python
  15. Метод setitem в Python
  16. Удаление элемента из списка в Python
  17. GitHub в Telegram: подписка на уведомления
  18. Изменения в обработке логических значений
  19. Отладка в командной строке
  20. Генерация случайных чисел Python
  21. Установка User-Agent в Python
  22. Декораторы с аргументами в Python
  23. Генератор списка с условием if
  24. Подсчет элементов с помощью Counter из collections
  25. Базовые объекты Python
  26. Множественное присваивание в Python
  27. Перехват исключений в Python
  28. Измерение времени выполнения кода
  29. Порядок операций в Python
  30. Простой калькулятор Python
  31. Любовь к Python
  32. Создание комплексных чисел
  33. Создание таблиц в Python с PrettyTable
  34. Сравнение def и lambda в Python
  35. Получение списка кортежей из словаря
  36. Обход дочерних элементов BeautifulSoup
  37. Работа с геоданными с помощью geopy
  38. Объединение словарей в Python 3.5+
  39. Модуль Operator в Python
  40. Python Поверхностное Копирование
  41. Howdoi — получение ответов из терминала
  42. Скрытие вывода данных
  43. Работа с CSV файлами
  44. Переворот строки с помощью срезов

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