PythonでOrderedDictを作成する方法は?質問する

PythonでOrderedDictを作成する方法は?質問する

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 は意図した順序を認識します。

おすすめ記事