33

値がすべての辞書の値の最大値である辞書キーを取得しようとしています。

私は 2 つの方法を見つけましたが、どちらもエレガントではありません。

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]

より良いアプローチはありますか?

4

1 に答える 1

96

keyパラメータを使用して、次のことを行いますmax()

max(d, key=d.get)

デモ:

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

パラメータはkey関数を取り、イテラブル内の各エントリについて、key関数が最大値を返すものを見つけます。

于 2012-12-30T14:45:48.440 に答える