Курс 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. Получение текущей даты в Python
  3. Работа с deque из collections
  4. Распаковка с оператором *
  5. Docstring в Python
  6. Генерация фальшивых данных с Faker
  7. Простой калькулятор Python
  8. Извлечение аудио из видео
  9. Concrete Paths — метод .with_suffix()
  10. Настройка нарезки списков
  11. Расчет времени выполнения программы
  12. Конкатенация строк с join() в Python
  13. Хранение переменных в Python.
  14. Работа с множествами в Python
  15. Разница между датами
  16. Получение текущей даты и времени с помощью datetime
  17. Работа с файлами в Python
  18. Метод __getitem__ в Python
  19. Применение функции к списку
  20. Метод join() для объединения элементов строки
  21. Логирование с Logzero
  22. Заказ карты Тинькофф Black
  23. Конкатенация строк в Python
  24. GitHub в Telegram: подписка на уведомления
  25. Обход элементов в Python
  26. Декоратор защиты анонимных пользователей
  27. Конкатенация строковых литералов
  28. Оператор «or» в Python
  29. Удаление дубликатов из списка с помощью dict.fromkeys
  30. Библиотека Chartify: руководство
  31. Срез в Python
  32. Измерение времени выполнения кода в Python
  33. Закрытие файла в Python
  34. Метод add для класса Vector
  35. Структура строк в Python
  36. Преобразование Word в PDF с Spire.Doc
  37. Избегайте двойного подчеркивания
  38. Python Translator: создание локальных переводчиков
  39. Цикл for с enumerate() в Python
  40. Метод eq для сравнения объектов
  41. Декораторы в Python
  42. Необязательные аргументы в Python
  43. Форматирование строк с f-строками
  44. Python Поверхностное Копирование
  45. Запуск Python из интерпретатора
  46. Виртуальные среды в Python
  47. Нан-рефлексивность в Python
  48. Обновление множества в Python
  49. Разделение списка на гнппы

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