Порядок ключей в словаре Python
У меня есть словарь
{'a': 'first', 'b': 'second'}
Однако мне нужен словарь в другом порядке:
- Извлечение части данных из файла JSON с помощью python
- Как реализовать ассоциативный массив (не словарь) в Python?
- можно использовать несколько ключей в словаре python?
- Порядок ключей в другом Python dict ()
- Конкатенационные словари
{'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
если вам нужен упорядоченный словарь.
- Лучше «попробовать» что-нибудь и поймать исключение или проверить, возможно ли его первым избежать исключения?
- Использование строковой переменной в качестве имени переменной