簡體   English   中英

按嵌套字典中的值對字典進行排序

[英]Sort a dictionary by values in a nested dictionary

我有這樣的字典:

   dic = {first_a : { first_b : {10, 2} } , second_a : {second_b : {13, 15} } [...] }

我想根據 x_a 和 y_a 的總和對嵌套字典進行排序。 我無法理解這個問題,有人可以提供幫助嗎? 我曾嘗試使用 sorted() 函數,但無法找到正確的 lambda 函數用作鍵..

假設您打算擁有這樣的字典:

data = {'a': {'b': {2, 10}}, 'c': {'d': {13, 15}}}

你可以像這樣得到你想要的:

sorted(data, key =lambda k: sum(*dic[k].values()), reverse=True)

但是我不認為這非常具有可讀性。 我會這樣做:

def get_sum(k):
    vals, *_ = data[k].values()
    return sum(vals)

sorted(data, key=get_sum, reverse=True)

當我在深夜查看代碼時,括號太多 == 太長而無法弄清楚發生了什么。

請注意,我使用values()是因為我不知道您的內部鍵是否是常量。 如果是的話,生活就更簡單了。 請注意,這是對鍵進行操作和排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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