mclafee mclafee - 7 months ago 35
Python Question

Get dict key by max value

I'm trying to get dict key where it's value is max in all dict's values.
I found two ways, both not elegant enough.

d= {'a':2,'b':5,'c':3}
# 1st way
print [k for k in d.keys() if d[k] == max(d.values())][0]
# 2nd way
print Counter(d).most_common(1)[0][0]

Is there better approach?


Use the key parameter to max():

max(d, key=d.get)


>>> d= {'a':2,'b':5,'c':3}
>>> max(d, key=d.get)

The key parameter takes a function, and for each entry in the iterable, it'll find the one for which the key function returns the highest value.