我有這樣的字典:
dic = {"first_a" : { "first_b" : {10, 2} } , "second_a" : {"second_b" : {13, 15} } [...] }
我想根據 first_b 和 second_b 值的總和對嵌套字典進行排序。我無法理解這個問題,有人可以提供幫助嗎?我曾嘗試使用 sorted() 函式,但無法找到正確的 lambda 函式用作鍵..
uj5u.com熱心網友回復:
假設您打算擁有這樣的字典:
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()是因為我不知道您的內部鍵是否是常量。如果是的話,生活就更簡單了。請注意,這是對鍵進行操作和排序。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322860.html
上一篇:將主要游戲回圈轉化為功能
