これを試して:
mydict = {'Rust': {'definition':'rusts definition'},
'Iron': {'definition':'iron definition'},
'Pyrite': {'definition':'pyrite definition'}}
myorder = ['Pyrite', 'Rust', 'Iron']
from collections import OrderedDict
ordered = OrderedDict()
for k in myorder:
ordered[k] = mydict[k]
またはさらに短い:
ordered = OrderedDict((k, mydict[k]) for k in myorder)
上記のスニペットを使用するordered
と、 と同じキー/値が含まれmydict
ますが、 で指定された順序で挿入されmyorder
ます。これが の利点ですOrderedDict
。繰り返し処理を行うと、挿入順序が保持されます。
既存の辞書をその場でソートする方法はありません (すべてのキーと値のペアを抽出し、それらを削除して、正しい順序で再度追加することはできますが、それは考えではありませんよね?)、作成する必要があります。新しいもの ... または、指定された順序で既存の辞書を単純に反復処理します。
for k in myorder:
x = mydict[k] # do something with x