按最大值获取dict键

mcl*_*fee 24 python counter dictionary

我试图得到dict键,它的值在所有dict的值中都是max.我找到了两种方法,都不够优雅.

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]
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

Mar*_*ers 77

使用key参数max():

max(d, key=d.get)
Run Code Online (Sandbox Code Playgroud)

演示:

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

key参数接受一个函数,对于iterable中的每个条目,它将找到key函数返回最高值的那个条目.