python3 lambda函数字典排序_排序字典表理解中的lambda函数
我有以下詞典:student_loan_portfolio = {
'loan1': {'rate': .078, 'balance': 1000, 'payment': 100, 'prepayment': 0},
'loan2': {'rate': .0645, 'balance': 10, 'payment': 5, 'prepayment': 0},
'loan3': {'rate': .0871, 'balance': 250, 'payment': 60, 'prepayment': 0},
'loan4': {'rate': .0842, 'balance': 200, 'payment': 37, 'prepayment': 0},
'loan5': {'rate': .054, 'balance': 409, 'payment': 49, 'prepayment': 0},
'loan6': {'rate': .055, 'balance': 350, 'payment': 50, 'prepayment': 0}
}
我想遍歷包含字典(使用loan1到loan6鍵),以便將包含字典的鍵按其各自嵌套字典中“rate”值最高的順序排列。也就是說,我想按loan3,loan4,loan1,loan2,loan6,loan5的順序迭代
多虧了@Jame Sharp,我知道最簡單的方法是:for k,v in sorted(student_loan_portfolio.items(), key=lambda (k,v): v['rate'], reverse=True):
我現在讀到了關于lambda的文章,無法真正理解它是如何工作的以及為什么這樣工作的。
首先,v['rate']我相信返回的是那些字典鍵的值。但它似乎應該是某種語法錯誤。什么是v['rate']引用,語法背后的邏輯是什么?
關于相關的注意事項,為什么我們必須將lambda函數的輸入指定為元組?
下面的情況有什么不同?#1
>>>f = lambda x,y,z:x + y + z
>>>f(1,2,3)
#6
>>>f = lambda (x,y,z): x + y + z
>>>f(1,2,3)
Traceback (most recent call last):
File "", line 1, in
f(1,2,3)
TypeError: () takes exactly 1 argument (3 given)
謝謝你的澄清。
總結
以上是生活随笔為你收集整理的python3 lambda函数字典排序_排序字典表理解中的lambda函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 锁相放大器sr830_各位谁会用Stan
- 下一篇: python包括几种数据类型_简单谈谈P