Курс 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. Модуль sys: основы
  3. Хранение данных
  4. Анализ текста на русском языке с помощью Pymystem3
  5. Форматирование строк в Python.
  6. Параллельные вычисления в Python
  7. Повторение элементов в Python
  8. lru_cache оптимизация функций
  9. Комплексные числа в Python
  10. Мониторинг памяти с Pympler
  11. Работа с комбинациями в Python.
  12. Оператор объединения словарей
  13. Python: библиотеки и функции
  14. Повторение элементов в Python
  15. Оператор Walrus: правильное использование
  16. Преобразование символов с помощью map
  17. Справка по импортированным модулям
  18. Обратное распространение ошибки
  19. Библиотека Chartify: руководство
  20. Цикл for в Python
  21. Создание новой даты в Python
  22. Стать Python-разработчиком
  23. Сравнение def и lambda функций в Python
  24. Метод __irshift__ для побитового сдвига вправо
  25. Фильтрация элементов с помощью islice
  26. Работа с многоуровневыми словарями в Python
  27. Создание функций высшего порядка
  28. Объединение кортежей в Python
  29. Игра Виселица на Python
  30. Метод count() для списков
  31. Модуль itertools: эффективная работа с итераторами
  32. Объединение списков в Python.
  33. Сравнение строк в Python
  34. Передача аргументов в Python
  35. Работа с Telegram API на Python
  36. Изменение переменной в Python: nonlocal
  37. Копирование словарей и списков в Python
  38. Сравнение def и lambda в Python
  39. Удаление URL-адресов в Python
  40. Работа с collections в Python.
  41. Руководство по Pymorphy2
  42. Python Ellipsis использование
  43. Отправка POST запроса на сервер.
  44. Работа с collections.Counter

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