Остановить Python в алфавитном порядке, диктуя внутри диктов - PullRequest
0 голосов
/ 05 ноября 2011

Если я создаю диктат диктата

mydict = {
    'zstuff':{
        'zzz':True,
        'aaa':True
    },
    'astuff':{
        'zzz':True,
        'aaa':True
    }
}

Затем используйте 'for', чтобы циклически изменить слова

for key in mydict:
    for tag in mydict[key]:
        print "{}:{}".format(key,tag)

Python output

zstuff:aaa
zstuff:zzz
astuff:aaa
astuff:zzz

Есть ли способ заставить Python не изменять порядок диктов второго уровня?

Ответы [ 2 ]

7 голосов
/ 05 ноября 2011

Python не упорядочивает словари по алфавиту.На самом деле, он заказывает словари произвольно.Если вам нужен объект словаря, который сохраняет исходный порядок, взгляните на класс collections.OrderedDict, доступный в Python 2.7.

1 голос
/ 05 ноября 2011
from collections import OrderedDict

mydict = {'zstuff' : OrderedDict(zzz=True, aaa=True),
          'astuff' : OrderedDict(zzz=True, aaa=True)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...