Курс 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. Функция enumerate() — Python
  2. Инверсия списка/строки в Python
  3. Иерархия классов в Python
  4. Основы Python за 14 дней
  5. Декодирование строк в Python
  6. Преобразование текста в нижний регистр
  7. Получение пути к текущему скрипту с помощью os
  8. Список импортированных модулей в Python
  9. Обмен значений переменных в Python
  10. Создание списков в Python
  11. Работа с асинхронными задачами в Python
  12. Метод is_absolute() для PurePath
  13. Отображение HTML кода в Python
  14. Генераторы в Python
  15. Экспорт внешнего файла с помощью writefile
  16. Склеивание строк через метод join()
  17. Анализ кода — Python
  18. Оператор «not» в Python
  19. Создание инструмента обнаружения плагиата
  20. Создание графики с черепахой
  21. Обработка ошибок ввода данных
  22. Экспорт данных в файл.
  23. EMOT преобразование эмодзи в текст
  24. Удаление ключа из словаря в Python
  25. Создание коллекций из генератора
  26. Транспонирование матрицы в Python
  27. Работа с файловой системой в Python
  28. Defaultdict в Python
  29. Генераторы в Python
  30. Скачать видео с YouTube
  31. Модуль future Python
  32. Метод get() для словарей
  33. Метод __call__ в Python
  34. Просмотр атрибутов и методов класса
  35. Вызов внешних программ в Python с помощью sh
  36. Декоратор total_ordering для класса Point
  37. Поиск элементов BeautifulSoup
  38. Python и Монти Пайтон
  39. Конкатенация строковых литералов
  40. Оператор Walrus в Python 3.8
  41. Бесконечная проверка в Python
  42. Метод getitem для доступа к элементам последовательности
  43. Импорт и использование модулей в Python
  44. Генерация ключей RSA
  45. Разработка игры Pong с turtle
  46. Применение промокода в Много лосося
  47. Правила именования переменных

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