from collections import OrderedDict
import pprint
menu = {"about" : "about", "login" : "login", 'signup': "signup"}
menu = OrderedDict(menu)
pprint.pprint(menu.items())
import sys
sys.exit()
Выход:OrderedDict не сохраняет порядок
[('about', 'about'), ('signup', 'signup'), ('login', 'login')]
Таким образом, порядок не сохраняется даже при использовании OrderedDict
. Я знаю, что словари не сохраняют начальный порядок по умолчанию и все эти вещи. Но я хочу узнать, почему OrderedDict
не работает.
, как вы можете видеть, вы не одиноки получать downvotes без всякой причины. –
Это важный вопрос (ошибочно назначающий сначала dict, а затем OrderedDict), который многие из нас самостоятельно открыли и поцарапали наши головы ... этот вопрос совершенно законный, документирует важную информацию и не должен быть замедлен. ** Глубоко контринтуитивно, OrderedDict должен быть инициализирован/назначен из списка кортежей, а не из dict **, чтобы сохранить правильный порядок :) – smci
Возможный дубликат [Преобразование dict в OrderedDict] (https: // stackoverflow .com/вопросы/15711755/превращающего ДИКТ-к-ordereddict) –