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