Курс 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. Синхронизация потоков с time.sleep()
  3. Уникальность ключей в словаре
  4. Поиск наиболее частого элемента списке
  5. Новшества Flask 2.0
  6. Обмен значений переменных в Python
  7. Добавление элемента в список.
  8. Объединение, распаковка и деструктуризация
  9. Отправка HTTP-запросов с User-Agent
  10. Импорт в Python: список all
  11. Удаление дубликатов из списка с помощью dict.fromkeys
  12. Область видимости переменных
  13. Python groupby() из itertools: работа с повторяющимися элементами
  14. Обучение модели с указанием эпох
  15. Декораторы классов
  16. Расчет времени выполнения программы
  17. Создание списков в Python
  18. Работа с пакетами
  19. Метаклассы в Python
  20. Функция all() в Python
  21. Работа со словарями с defaultdict из collections
  22. Метод __index__ в Python
  23. discard() — удаление элемента из множества
  24. Генераторы в Python
  25. Разделение строки на пары ключ-значение.
  26. Протокол управления контекстом
  27. Получение комбинаций в Python
  28. Оператор обр. импликации
  29. Создание детектора плагиата
  30. Преобразование range в итератор
  31. Поиск индекса элемента
  32. Использование двоеточия в Python
  33. Вывод сложных структур данных с помощью pprint
  34. Избегайте использования goto
  35. Тестирование функции сложения
  36. Обновление ключей в Python
  37. Экспорт данных в файл.
  38. Генераторы списков
  39. Метод ne для сравнения объектов
  40. Получение частей дроби
  41. Экспорт данных с помощью writefile
  42. Генераторы в Python
  43. Работа с deque из collections
  44. Генераторы в Python
  45. Поиск с библиотекой Google
  46. Создание новых функций с помощью functools.partial

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