Порядок ключей в словаре 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 если вам нужен упорядоченный словарь.

  • Есть ли питонический способ обработки древовидных ключей?
  • Ruby hash эквивалент Python dict setdefault
  • получить ключ по значению, dict, python
  • Как это сделать - трассировка и поиск словаря python
  • Добавление одного символа для добавления ключей в счетчик
  • Как сделать словарь python, который возвращает ключ для ключей, отсутствующих в словаре, вместо того, чтобы поднимать KeyError?
  • TypeError: объект str не является итератором
  • У Python есть словарь с одноименными ключами?
  • Python - лучший язык программирования в мире.