以下は、私が持っているサンプル辞書です。どういうわけか、私はこの方程式多次元辞書を値でソートし、Pythonで新しくソートされた辞書を返す
dict_sorted = sorted(my_dict, key=lambda x: int(my_dict[x]['marks']), reverse=True)
を使用して
marks
ことによってそれをソートし得る必要があり、
my_dict = {
'003':{
'class':'13',
'marks':'90',
'name':'CCC',
'date_accessed':'2017-07-12 17:43:24'
},
'002':{
'marks':'90',
'class':'10',
'name':'BBB',
'date_accessed':'2017-07-12 17:43:24'
},
'001':{
'marks':'80',
'class':'9',
'name':'AAA',
'date_accessed':'2017-07-12 17:43:24'
},
'005':{
'date_accessed':'2017-07-12 17:43:42',
'marks':'999',
'name':'EEE',
'class':'99'
},
'004':{
'class':'50',
'marks':'100',
'name':'DDD',
'date_accessed':'2017-07-12 17:43:24'
}
}
は、今私はmarks
ことによってそれをソートしたいので、結果として辞書には、今、この
my_dict = {
'005':{
'date_accessed':'2017-07-12 17:43:42',
'marks':'999',
'name':'EEE',
'class':'99'
},
'004':{
'class':'50',
'marks':'100',
'name':'DDD',
'date_accessed':'2017-07-12 17:43:24'
}
'003':{
'class':'13',
'marks':'90',
'name':'CCC',
'date_accessed':'2017-07-12 17:43:24'
},
'002':{
'marks':'90',
'class':'10',
'name':'BBB',
'date_accessed':'2017-07-12 17:43:24'
},
'001':{
'marks':'80',
'class':'9',
'name':'AAA',
'date_accessed':'2017-07-12 17:43:24'
},
}
のようになります
しかし、これは私にはソートされた方法でkeys
しか与えませんが、上記のように新しくソートされた辞書を生成することはできません。親切にも私はここで辞書を並べ替えるためにmarks
で助け、新しいソートされた辞書を与えます。ありがとう。
編集:私はすでにとこのIssue sorting a multi-dimensional dictionary that has non-numeric indices in Pythonのようなstackoverflowで多くの記事を見てきましたが、これらの投稿は私が必要とする結果を提供できませんでした。
可能な重複:
、その後:あなたは本当に私の知る限りでは、辞書を並べ替えることはできませんまあpythonで – architrex
あなたの目標辞書は入力辞書と同じです(あなたのタイプミスを除く)。 –
辞書は*順不同です。 「ソートされた辞書」と言っても意味がありません。あなたの最善の選択肢は 'collections.OrderedDict'のような順序付けられたマッピングを使うことです。とにかくそれを「ソート」する必要があるのはなぜですか? –