Курс 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"
- Создание списков в Python
- Бинарный поиск
- Навыки Python: строки, типы данных
- Метод eq для сравнения объектов
- Модуль math: константы π и e
- Псевдонимы в Python
- Списки в Python
- Округление банкира в Python
- Работа с файлами в Python
- Преобразование чисел в восьмеричную строку
- Удаление элементов из списка в Python
- Создание директории в Python
- Python: возвращение нескольких значений
- Однострочники Python
- Оптимизация памяти в Python
- Получение размера объекта с sys.getsizeof()
- Удаление файлов и папок в Python
- Абстракции словарей и множеств в Python
- Настройка шрифта и цвета в Tkinter
- Регулярные выражения: метод match
- Работа с файлами и директориями в Python.
- Big O оптимизация
- Numpy: объединение массивов
- Операторы присваивания в Python
- Удаление ссылок в Python
- Бесконечные списки в Python
- Форматирование строк с помощью f-строк
- Извлечение аудио из видео
- Капитализация строк
- Защита данных в Python
- CLI-инструмент howdoi
- Enum в Python: создание и использование перечислений
- Измерение времени выполнения с помощью time
- Управление мышью и клавиатурой с Pyautogui
- Операции с комплексными числами
- Регистрация на курсы SF Education
- Concrete Paths — метод .with_suffix()
- Методы и функции в Python
- Проверка версии Python
- Экспорт данных с помощью writefile
- Объединение списков с использованием itertools.chain
- Открытие и редактирование скриптов Python
- Транспонирование 2D-массива с помощью zip
- Декораторы в Python
- Конструктор в Python
- Методы list в Python
- Отладка в командной строке
- Метод setdefault() в Python















