मैं निम्नलिखित शब्दकोश है:लैम्ब्डा समारोह
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}
}
मैं (के साथ कुंजी loan6 के माध्यम से loan1) युक्त शब्दकोश के माध्यम से पुनरावृति करने के लिए उच्चतम साथ शब्दकोश युक्त कुंजी के क्रम में चाहते हैं अपने रेटेड नेस्टेड डिक्शनरी में 'रेट' वैल्यू। यही कारण है,
है मैं loan3, loan4, loan1, loan2, loan6 के क्रम में पुनरावृति करना चाहते हैं, loan5 @Jame तीव्र के लिए धन्यवाद यह है कि मैं जानता हूँ कि सबसे आसान तरीका:
for k,v in sorted(student_loan_portfolio.items(), key=lambda (k,v): v['rate'], reverse=True):
मैं अब मैं लैम्ब्डा के बारे में पढ़ रहा हूं और वास्तव में यह नहीं समझ सकता कि यह कैसे और क्यों काम करता है। पहला, वी ['दर'] मेरा मानना है कि उन शब्दकोश कुंजी के मूल्य को वापस कर रहा है। लेकिन ऐसा लगता है कि यह किसी प्रकार की वाक्यविन्यास त्रुटि होनी चाहिए। वी ['दर'] संदर्भ क्या है और वाक्यविन्यास के पीछे तर्क क्या है?
संबंधित नोट पर, हमें लैम्ब्डा फ़ंक्शन में इनपुट को टुपल के रूप में निर्दिष्ट करना क्यों है?
और निम्नलिखित मामले अलग कैसे हैं?
#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 "<pyshell#48>", line 1, in <module>
f(1,2,3)
TypeError: <lambda>() takes exactly 1 argument (3 given)
स्पष्टीकरण के लिए धन्यवाद।
दूसरा वाला पैक 3 इनपुट के साथ पैक किए गए इनपुट की अपेक्षा करता है? 'एफ ((1,2,3))' –