0

私は次のような辞書を持っています:

stats = {'a':1,'b':2,'c':2}

最大値を持つ辞書を生成する必要があります...同点がある可能性があります:

max_only = {'b':2,'c':2}

値が最大になる新しい辞書を生成するための最もPython的で最速の方法は何ですか?

4

2 に答える 2

3

まず、最大値を決定する必要があります。

max_value = max(stats.itervalues())

次に、max_only辞書を作成します。

max_only = {k: v for k, v in stats.iteritems() if v == max_value}

Python 3の場合は、とをそれぞれitervalues()とに置き換えます。iteritems()values()items()

最大のキーと値のペアを1つ見つける方が簡単です。

dict(max(stats.iteritems(), key=lambda kv: kv[1]))
于 2013-03-24T17:27:35.763 に答える
1
Almost the above answer:
new_stats = {}
for key,values in stats.items():
  if values == max(stats.values()):
    new_stats[key] = values
于 2013-03-24T18:03:33.853 に答える