更新: Paul Hankin は max() が重要な機能を持っていることを指摘しましたが、私は知りませんでした。そう:
>>> def argmax(**kw):
... return max(kw, key=kw.get)
...
>>> argmax(foo=3, bar=5, frotz=1, kaka=-3)
'bar'
完全性のためのその他の解決策:
Python 2.7 および 3.x では、辞書内包表記を使用できます。
>>> def argmax(**kw):
... wk = {v:k for k,v in kw.items()}
... return wk[max(wk)]
...
>>> argmax(foo=3, bar=5, frotz=1, kaka=-3)
'bar'
辞書の理解はきちんとしています。:)
以前のバージョンの Python では、次のことができます。
>>> def argmax(**kw):
... wk = dict([(v,k) for k,v in kw.items()])
... return wk[max(wk)]
...
>>> argmax(foo=3, bar=5, frotz=1, kaka=-3)
'bar'
これは、Python 2.2 以降で動作します。