Sort keys in dictionary by value in a list in Python

dictionary, list, python, sorting

Solution

Supply a `key` function, a `lambda` is easiest, and sort reversed:

sorted(Dict.keys(), key=lambda k: Dict[k][3], reverse=True)

The key function tells `sorted` what to sort by; the 4th item in the value for the given key.

Demo:

>>> sorted(Dict.keys(), key=lambda k: Dict[k][3], reverse=True)
['b', 'a', 'c']

Problem

I have seen this post and this post as well as many others, but haven't quite found the answer to my question nor can I figure it out. I have a dictionary of lists. For example it looks like: ``` Dict = {'a':[1,2,3,4], 'b':[9,8,7,6], 'c':[8,5,3,2]} ``` I want to return a list of the keys sorted (descending/reverse) based on a specific item in the lists. For example, I want to sort a,b,c based on the 4th item in each list. This should return the list `sorted_keys = ['b','a','c']` which were sorted by values `[6,4,2]`. Make sense? Please help...thanks!

Original source

Related problems