Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: Python dict, insertion order, Python 3.7, dictionary

Начиная с какой версии Python сохраняется порядок вставки в dict?

Проверяет знание изменений в реализации словарей Python, начиная с версии 3.7, где порядок вставки стал гарантированным свойством языка.

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

Начиная с Python 3.7, словари (dict) гарантированно сохраняют порядок вставки элементов. Это означает, что при итерации по словарю элементы возвращаются в том порядке, в котором они были добавлены. Ранее, в Python 3.6, это было деталью реализации CPython, но не гарантировалось спецификацией языка. С версии 3.7 это стало официальной частью языка.

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

Порядок вставки в словарях Python

До Python 3.6 словари не гарантировали сохранение порядка вставки элементов. Разработчики полагались на другие структуры данных, такие как OrderedDict из модуля collections, если им был нужен упорядоченный словарь. Однако начиная с Python 3.6, в реализации CPython (основной интерпретатор Python) было введено внутреннее изменение, которое сохраняло порядок вставки. Это было сделано для оптимизации памяти и производительности.

Официальная гарантия с Python 3.7

С выходом Python 3.7 сохранение порядка вставки стало частью спецификации языка. Это означает, что любая реализация Python (CPython, PyPy, Jython и т.д.) обязана соблюдать это поведение. Теперь можно полагаться на порядок элементов в обычном dict без использования OrderedDict.

Пример кода

# Python 3.7+ гарантирует порядок вставки
d = {}
d['banana'] = 3
d['apple'] = 1
d['cherry'] = 2
print(list(d.keys()))  # ['banana', 'apple', 'cherry']

# Для обратной совместимости с более старыми версиями
from collections import OrderedDict
od = OrderedDict()
od['banana'] = 3
od['apple'] = 1
print(list(od.keys()))  # ['banana', 'apple']

Вывод

Используйте обычный dict, если вам нужен порядок вставки, начиная с Python 3.7. Для кода, который должен работать на более старых версиях, применяйте OrderedDict. Это изменение упростило код и улучшило производительность, так как OrderedDict имеет небольшие накладные расходы.

  • Аватар

    Python Guru

    Sergey Filichkin

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • Python

    Python

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

#Python dict

#insertion order

#Python 3.7

#dictionary

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

  • Аватар

    Python Guru

    Sergey Filichkin

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