Курс 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. Модуль xkcd: добавление юмора в Python
  2. Настройка вывода NumPy
  3. Python Метод sleep() времени
  4. Работа с SQLite в Python
  5. Повторение и перенос строки
  6. Освобождение памяти в Python
  7. Управление мышью и клавиатурой с Pyautogui
  8. Взаимодействие с sys
  9. Подсчет элементов в Python
  10. Преобразование числа в список цифр
  11. Абстракции словарей и множеств в Python
  12. Работа со списками
  13. Инверсия списка и строки
  14. Обработка исключений в Python
  15. Определение наиболее частого элемента с помощью collections.Counter
  16. Класс UserDict: дополнительная функциональность
  17. Переопределение унарных операторов
  18. Удаление первого элемента списка
  19. Просмотр файла в Jupyter Noteboo
  20. Слияние словарей в Python 3.9
  21. Python Enum Weekday Usage
  22. Удаление дубликатов из списка
  23. Подсчет количества элементов в списке
  24. Извлечение аудио из видео
  25. Функция с *args.
  26. Метод rpow в Python
  27. Получение имени функции с помощью inspect
  28. Печать календаря
  29. Списковые включения в Python
  30. Объединение итераторов
  31. Документирование функций в Python
  32. Работа с очередями в Python
  33. Проверка вхождения подстроки
  34. Преобразование типов данных в set comprehension
  35. Создание словарей и множеств в Python.
  36. Работа с атрибутом dict
  37. Определение относительного пути
  38. Получение списка кортежей из словаря
  39. Работа с процессами в Python
  40. Использование super() в Python
  41. Проверка версии Python
  42. Операции с числами в Python
  43. Вакансии в Nebius

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