#python #dictionary
#python #словарь
Вопрос:
Если я создам dict из dicts
mydict = {
'zstuff':{
'zzz':True,
'aaa':True
},
'astuff':{
'zzz':True,
'aaa':True
}
}
Затем используйте ‘for’ для циклического выполнения dicts
for key in mydict:
for tag in mydict[key]:
print "{}:{}".format(key,tag)
Python выводит
zstuff:aaa
zstuff:zzz
astuff:aaa
astuff:zzz
Есть ли какой-либо способ заставить Python не переупорядочивать dicts второго уровня?
Ответ №1:
Python не упорядочивает словари по алфавиту. Фактически, он упорядочивает словари произвольно. Если вам нужен объект dictionary, который сохраняет исходный порядок, взгляните на collections.OrderedDict
класс, доступный в Python 2.7.
Комментарии:
1. Что-нибудь подобное для Python 2.6?
Ответ №2:
from collections import OrderedDict
mydict = {'zstuff' : OrderedDict(zzz=True, aaa=True),
'astuff' : OrderedDict(zzz=True, aaa=True)}