Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: dict, collections, mapping, structure

Альтернативы структуры данных dict

Вопрос проверяет знание других структур, которые могут использоваться вместо dict для хранения пар "ключ-значение" или для специализированных задач.

Короткий ответ

Вместо обычного dict можно использовать такие структуры, как collections.defaultdict, collections.OrderedDict, collections.ChainMap, types.MappingProxyType. Каждая из них решает определённую задачу: например, добавляет значения по умолчанию, сохраняет порядок или делает словарь только для чтения.

Длинный ответ

1. defaultdict:

  • Подставляет значение по умолчанию при обращении к несуществующему ключу.

from collections import defaultdict
d = defaultdict(int)
d['x'] += 1
print(d['x'])  # 1

2. OrderedDict:

  • Сохраняет порядок добавления ключей (до Python 3.7 это не гарантировалось в обычных dict).

from collections import OrderedDict
d = OrderedDict()
d['a'] = 1
d['b'] = 2
print(list(d.keys()))  # ['a', 'b']

3. ChainMap:

  • Позволяет объединить несколько словарей в один без копирования.

from collections import ChainMap
a = {'x': 1}
b = {'y': 2}
cm = ChainMap(a, b)
print(cm['y'])  # 2

4. MappingProxyType:

  • Делает словарь доступным только для чтения (иммутабельным).

from types import MappingProxyType
original = {'key': 'value'}
proxy = MappingProxyType(original)
# proxy['key'] = 'new'  # ошибка

Вывод:
Альтернативы dict применяются для особых сценариев: значения по умолчанию, иммутабельность, порядок, объединение и др.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Python

    Python

Ключевые слова

#dict

#collections

#mapping

#structure

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.