字典串列必須按照另一個串列中包含的值的順序重新排序,如下所示。(在本例中為 ["site"]。)
另一個串列包含字典的值。
在只有字典的情況下,很容易使用理解等重新排序它們,但我想不出一種重新排序字典串列的方法。
怎么可能以這種方式重新排序它們?
l = ["c", "b", "a"]
d = [
{"id": 1, "site": "a"},
{"id": 2, "site": "c"},
{"id": 3, "site": "b"}
]
↓
[
{"id": 2, "site": "c"},
{"id": 3, "site": "b"}
{"id": 1, "site": "a"},
]
uj5u.com熱心網友回復:
d.sort(key=lambda item: l.index(item['site']))
應該做的伎倆。
如果兩個串列都很大,則臨時映射可能更有效:
m = {item['site']: item for item in d}
d = [m[site] for site in l]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/487960.html
