Search code examples
pythonlistdictionarylist-comprehension

Get the key corresponding to the 3 minimum values within a dictionary


I have a Python dictionary, and I want to find the keys for the 3 minimal values in it.

For example:

Input: d = {1 : 10 , 0.1 : 15 , 0.3 : 18 , 0.001 : 25 , 0.003 : 42}
Output: [1, 0.1 , 0.3]

I know how to grab only one minimum value with a list comprehension:

min_val = min(d.values())
min_numbers = [num for num, value in d.items() if value == min_val]

but how do I do it for three?


Solution

  • Try this:

    l = [item for item in sorted(d, key=d.get)][0:3]
    print(l)
    

    Output

    [1, 0.1, 0.3]