[英]How to sort python dict based on multiple dict keys?
對於以下數據,我希望首先按“日期”屬性對數據進行排序,然后按“名稱”屬性對數據進行排序。
Input:
results = {
"a":{
"date":"20140206",
"bytes":"154",
"name":"cos"
},
"b":{
"date":"20140207",
"bytes":"300",
"name":"cos"
},
"c":{
"date":"20140206",
"bytes":"279",
"name":"phil"
},
"d":{
"date":"20140207",
"bytes":"241",
"name":"phil"
}
}
我正在嘗試以下有效的代碼,但我不確定它是如何先按日期然后按名稱排序的。
results = collections.OrderedDict(sorted(results.items()))
Output:
results = {
"a":{
"date":"20140206",
"bytes":"154",
"name":"cos"
},
"c":{
"date":"20140206",
"bytes":"279",
"name":"phil"
},
"b":{
"date":"20140207",
"bytes":"300",
"name":"cos"
},
"d":{
"date":"20140207",
"bytes":"241",
"name":"phil"
}
}
有沒有其他方法可以明確指定首先按日期屬性排序,然后按名稱屬性排序?
您必須使用key=
進行自定義排序。
如果您想先按日期排序,然后按名稱排序,則需要使用它們的元組作為排序鍵
results = collections.OrderedDict(sorted(results.items(), key=lambda s: (s[1]['date'], s[1]['name'])))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.