簡體   English   中英

我如何對以下的dictonaries列表進行排序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM