Порядок ключей в словаре Python

У меня есть словарь

{'a': 'first', 'b': 'second'} 

Однако мне нужен словарь в другом порядке:

 {'b': 'second', 'a': 'first'} 

Каков наилучший способ сделать это?

3 Solutions collect form web for “Порядок ключей в словаре Python”

Словари не упорядочены . Таким образом, нет никакого способа сделать это.

Если у вас есть python2.7 +, вы можете использовать collections.OrderedDict – в этом случае вы можете получить список элементов с помощью .items() а затем отменить его и создать новый OrderedDict из перевернутого списка:

 >>> od = OrderedDict((('a', 'first'), ('b', 'second'))) >>> od OrderedDict([('a', 'first'), ('b', 'second')]) >>> items = od.items() # list(od.items()) in Python3 >>> items.reverse() >>> OrderedDict(items) OrderedDict([('b', 'second'), ('a', 'first')]) 

Если вы используете более старую версию python, вы можете получить бэкпорт из http://code.activestate.com/recipes/576693/

Словари не имеют порядка.

Вы можете получить ключи, заказать их, как вам нравится, а затем перечислить значения словаря таким образом.

 keys = myDict.keys() keys = sorted(keys) # order them in some way for k in keys: v = myDict[k] 

Вы не можете; dict s являются несортируемыми. Используйте OrderedDict если вам нужен упорядоченный словарь.

  • Завершить значения dict до 2 десятичных знаков
  • Страны со списком Python в словаре
  • Итерация через словарь Python с помощью клавиш в отсортированном порядке
  • Do dicts сохраняют порядок итераций, если они не изменены?
  • Python добавляет новый элемент в словарь
  • Подклассификация словаря Python для переопределения __setitem__
  • Сохранение записей словаря Python в том порядке, в котором они нажаты
  • Переписывая текстовый файл для оценки, чтобы убедиться, что он имеет только последние 4 балла (python)
  • Передача dict конструктору?
  • python: итерация через словарь со значениями списка
  • Определите словарь python с неизменяемыми ключами, но изменяемыми значениями
  • Python - лучший язык программирования в мире.