Курс 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. Структура данных deque в Python
  2. Метод Enumerate() для списков
  3. Генераторы списков
  4. Хранение данных с помощью dataclasses
  5. Объединение коллекций в Python
  6. Библиотека sh: использование команд bash в Python
  7. Преобразование символов с помощью map
  8. Возвращение нескольких значений через кортеж или класс
  9. Обработка ошибок в Python
  10. Использование html-скриптов в Jupyter Notebook
  11. Руководство по Pymorphy2
  12. Преобразование списков в словарь
  13. Проектирование Singleton с метаклассом
  14. Описание скриптов в README
  15. Сортировка HTML-элементов
  16. Создание треугольника Паскаля
  17. Анонимные функции Lambda
  18. Управление пакетами с pip
  19. Enum в Python
  20. Декодирование байтов в строку
  21. Отладчик pdb: начало работы
  22. Удаление файлов с shutil.os.remove()
  23. Извлечение новостей с newspaper3k
  24. Определение объема памяти объекта
  25. Генераторы в Python
  26. Создание списков в Python
  27. Разделение строки на подстроки в Python
  28. Создание таблиц в Python с PrettyTable
  29. Проверка списка: any() и all()
  30. Работа со строками в Python
  31. Метод join для объединения строк
  32. Функция zip() в Python
  33. Декораторы в Python
  34. Запуск внешнего кода в Jupyter
  35. Преобразование данных в Python
  36. Python Поверхностное Копирование
  37. Функция pow() — возвести число в степень
  38. Открытие, чтение и закрытие файла
  39. Обход словаря в Python
  40. Мощь вложенных функций в Python
  41. Протокол управления контекстом
  42. Определение основы слова с showballstemmer
  43. Уникальность ключей в словаре
  44. Работа с контекстными менеджерами
  45. Декоратор total_ordering для класса Point

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