Заказаны ли словари в Python 3.6+?

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

Как новая реализация словаря работает лучше, чем старая, сохраняя порядок элементов?

Вот текст из документации:

dict() теперь использует «компактное» представлениеПионер PyPy, Использование памяти новой функцией dict () на 20-25% меньше по сравнению с Python 3.5.ОПТОСОЗ 468 (Сохранение порядка ** kwargs в функции.) Реализуется этим. Сохраняющий порядок аспект этой новой реализации рассматривается как деталь реализации и на нее не следует полагаться (это может измениться в будущем, но желательно иметь эту новую реализацию dict в языке в течение нескольких выпусков, прежде чем изменять спецификацию языка. предписывать семантику сохранения порядка для всех текущих и будущих реализаций Python, это также помогает сохранить обратную совместимость со старыми версиями языка, где все еще действует случайный порядок итераций, например, Python 3.5). (Предоставлено ИНАДА Наоки ввыпуск 27350, идеяпервоначально предложенный Раймондом Хеттингером.)

Обновление декабря 2017 года:dictсохраняющий порядок вставкигарантированный для Python 3.7

Ответы на вопрос(3)

Ваш ответ на вопрос