Курс 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"
- Функция enumerate() — Python
- Инверсия списка/строки в Python
- Иерархия классов в Python
- Основы Python за 14 дней
- Декодирование строк в Python
- Преобразование текста в нижний регистр
- Получение пути к текущему скрипту с помощью os
- Список импортированных модулей в Python
- Обмен значений переменных в Python
- Создание списков в Python
- Работа с асинхронными задачами в Python
- Метод is_absolute() для PurePath
- Отображение HTML кода в Python
- Генераторы в Python
- Экспорт внешнего файла с помощью writefile
- Склеивание строк через метод join()
- Анализ кода — Python
- Оператор «not» в Python
- Создание инструмента обнаружения плагиата
- Создание графики с черепахой
- Обработка ошибок ввода данных
- Экспорт данных в файл.
- EMOT преобразование эмодзи в текст
- Удаление ключа из словаря в Python
- Создание коллекций из генератора
- Транспонирование матрицы в Python
- Работа с файловой системой в Python
- Defaultdict в Python
- Генераторы в Python
- Скачать видео с YouTube
- Модуль future Python
- Метод get() для словарей
- Метод __call__ в Python
- Просмотр атрибутов и методов класса
- Вызов внешних программ в Python с помощью sh
- Декоратор total_ordering для класса Point
- Поиск элементов BeautifulSoup
- Python и Монти Пайтон
- Конкатенация строковых литералов
- Оператор Walrus в Python 3.8
- Бесконечная проверка в Python
- Метод getitem для доступа к элементам последовательности
- Импорт и использование модулей в Python
- Генерация ключей RSA
- Разработка игры Pong с turtle
- Применение промокода в Много лосося
- Правила именования переменных















