我尝试维护Python字典的顺序,因为原生的dict
没有任何顺序。SE中的许多答案建议使用OrderedDict
。
from collections import OrderedDict
domain1 = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary",
"us": "United States", "no": "Norway" }
domain2 = OrderedDict({ "de": "Germany", "sk": "Slovakia", "hu": "Hungary",
"us": "United States", "no": "Norway" })
print domain1
print " "
for key,value in domain1.iteritems():
print (key,value)
print " "
print domain2
print ""
for key,value in domain2.iteritems():
print (key,value)
迭代后,我需要字典保持原来的顺序,并且以原始的方式打印键和值:
{
"de": "Germany",
"sk": "Slovakia",
"hu": "Hungary",
"us": "United States",
"no": "Norway"
}
不过,无论我使用哪种方式,都无法保留这个顺序。
dict
(因为{...}
字面量是普通的dict
对象),然后将其传递到OrderedDict
构造函数中,该构造函数不再看到您的显式顺序。您需要直接将项目添加到OrderedDict
中。 - Daniel Pryden