一個單獨的列表的順序我有一個字典列表看起來像這樣的:排序字典的一個鍵,一個基於列表鍵Python中
[
{
"format": "format1",
"code": "tr"
},
{
"format": "format2",
"code": "hc"
},
{
"format": "format3",
"code": "bx"
},
{
"format": "format4",
"code": "mm"
},
{
"format": "format5",
"code": "el"
}
]
我需要訂購基於此列表
code_order = ["mm", "hc", "el", "tr", "bx"]
所以最終名單應該是這樣的:
[
{
"format": "format4",
"code": "mm"
},
{
"format": "format2",
"code": "hc"
},
{
"format": "format5",
"code": "el"
},
{
"format": "format1",
"code": "tr"
},
{
"format": "format3",
"code": "bx"
}
]
012對碼鍵的值,但代碼的順序是由一個獨立的名單確定
有沒有人有關於如何實現這一目標的任何建議?我很難搞清楚如何做這種類型。
爲了擴大John的答案,創建查找字典並將其用作排序關鍵字是最有效的pythonic方法。如果你想排序現有的列表,而不是創建一個新的列表,那麼第二行變成l.sort(key = lambda o:lookup [o ['code']])。 – 2013-03-07 20:18:36
@moreati,在這種情況下,我認爲最好是從查找字典開始,而不是將列表中的code_order轉換爲字典。我對此有控制,所以這很容易做到,在這種情況下,我只需要第二行。完善。這比我想要做的要簡單得多。 – 2013-03-07 21:05:44