2012-09-13 5 views
8

辞書値dここで、キー値のペアは文字列と値の整数で構成されていますが、値が最大のキー文字列を印刷したい。辞書の最大値のキーを平凡な方法で印刷する

もちろん、私はd.items()をループすることができ、最大とそのキーを格納し、forループの後に後者を出力します。しかし、ただ単にmax機能を使用して、より「神託」の方法は、(コメントから)

print max(...) 
+0

キーと値を切り換えたい、整数にdstringに値があるキーがある...(もちろん、文字列キーを使用しない場合は...) –

+3

Swapppingのキーと値は、値が全くユニークでない可能性があるためです。 – halloleo

答えて

16
print max(d.keys(), key=lambda x: d[x]) 

またはさらに短いのような構築があります:あなたがかもしれない辞書の使用状況に応じて、

print max(d, key=d.get) 
+6

「max(d、key = d.get)」については – georg

+0

どちらもうまくいくようです! :-)これはおかげで:私は、この問題に対処するための簡潔な方法を提供するかもしれないと思った! - 両方のソリューションに関して、私に見える2番目のバージョンは覚えやすいです。それは最初のものに何か警告がありますか? – halloleo

+0

@halloleo私はそうは思わない。 'keys()'はちょうど冗長で、 'get'は辞書の中に存在しない項目の' lambda 'との動作が異なり、この場合は発生しません。 –

関連する問題