Курс 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. Бинарный поиск
  3. Навыки Python: строки, типы данных
  4. Метод eq для сравнения объектов
  5. Модуль math: константы π и e
  6. Псевдонимы в Python
  7. Списки в Python
  8. Округление банкира в Python
  9. Работа с файлами в Python
  10. Преобразование чисел в восьмеричную строку
  11. Удаление элементов из списка в Python
  12. Создание директории в Python
  13. Python: возвращение нескольких значений
  14. Однострочники Python
  15. Оптимизация памяти в Python
  16. Получение размера объекта с sys.getsizeof()
  17. Удаление файлов и папок в Python
  18. Абстракции словарей и множеств в Python
  19. Настройка шрифта и цвета в Tkinter
  20. Регулярные выражения: метод match
  21. Работа с файлами и директориями в Python.
  22. Big O оптимизация
  23. Numpy: объединение массивов
  24. Операторы присваивания в Python
  25. Удаление ссылок в Python
  26. Бесконечные списки в Python
  27. Форматирование строк с помощью f-строк
  28. Извлечение аудио из видео
  29. Капитализация строк
  30. Защита данных в Python
  31. CLI-инструмент howdoi
  32. Enum в Python: создание и использование перечислений
  33. Измерение времени выполнения с помощью time
  34. Управление мышью и клавиатурой с Pyautogui
  35. Операции с комплексными числами
  36. Регистрация на курсы SF Education
  37. Concrete Paths — метод .with_suffix()
  38. Методы и функции в Python
  39. Проверка версии Python
  40. Экспорт данных с помощью writefile
  41. Объединение списков с использованием itertools.chain
  42. Открытие и редактирование скриптов Python
  43. Транспонирование 2D-массива с помощью zip
  44. Декораторы в Python
  45. Конструктор в Python
  46. Методы list в Python
  47. Отладка в командной строке
  48. Метод setdefault() в Python

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