[英]How do i sort the following list of dictonaries?
單個字典由3
key:value
對組成,我需要通過比較第一個鍵對字典進行排序,如果值相同則比較第二個鍵,依此類推,我該怎么做?
例如,如果詞典列表如下:
lst = [{'a':10,'b':20,'c':30},{'a':20,'b':50,'c':30},{'a':20,'b':40,'c':10},{'a':20,'b':40,'c':30}]
排序后,結果必須如下:
[{'a':20,'b':50,'c':30},{'a':20,'b':40,'c':30},{'a':20,'b':40,'c':10},{'a':10,'b':20,'c':30}]
在這里我們可以看到,在最后3
字典的鍵'a'
的原始列表值是相同的,因此我們比較它們的'b'
鍵並相應地對它們進行排序,但是最后2個字典的'b'
鍵是相同的,因此我們比較'c'
鍵並應用排序。
您可以使用sorted
,在key
函數中獲取字典的values
,這樣排序將根據每個字典中的所有值進行:
sorted(lst, key=lambda x: list(x.values()), reverse=True)
[{'a': 20, 'b': 50, 'c': 30},
{'a': 20, 'b': 40, 'c': 30},
{'a': 20, 'b': 40, 'c': 10},
{'a': 10, 'b': 20, 'c': 30}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.