dict
ネイティブには順序がないので、Python 辞書の順序を維持しようとしました。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"
}
ただし、どちらの方法を使用した場合でも、この順序は保持されません。
ベストアンサー1
アイテムのシーケンスを渡すか、アイテムを順番に挿入する必要があります。そうすることで順序がわかります。次のように試してください。
from collections import OrderedDict
domain = OrderedDict([('de', 'Germany'),
('sk', 'Slovakia'),
('hu', 'Hungary'),
('us', 'United States'),
('no', 'Norway')])
配列には順序があるため、OrderedDict は意図した順序を認識します。