Iterate through dictionary with respect to nested dictionary

dictionary, loops, nested, python

Solution

I believe you want:

sorted(student_loan_portfolio.items(), key=lambda (k,v): v['rate'], reverse=True)

(Thanks @MarkReed, you're right. To sort in descending order we need either `-v['rate']` or, as I've shown above, passing `reverse=True` to `sorted`.)

Problem

I have a nested dictionary as follows: ``` 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} } ``` I would like to iterate through the containing dictionary (with keys `loan1` through `loan6`) in order of the key containing the dictionary with the highest 'rate' value in its respective nested dictionary. That is, I would like to iterate in order of `loan3`, `loan4`, `loan1`, `loan2`, `loan6`, `loan5` What is the easiest way to do this? Thanks

Original source