私は次のような辞書を持っています:
stats = {'a':1,'b':2,'c':2}
最大値を持つ辞書を生成する必要があります...同点がある可能性があります:
max_only = {'b':2,'c':2}
値が最大になる新しい辞書を生成するための最もPython的で最速の方法は何ですか?
私は次のような辞書を持っています:
stats = {'a':1,'b':2,'c':2}
最大値を持つ辞書を生成する必要があります...同点がある可能性があります:
max_only = {'b':2,'c':2}
値が最大になる新しい辞書を生成するための最もPython的で最速の方法は何ですか?
まず、最大値を決定する必要があります。
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]))
Almost the above answer:
new_stats = {}
for key,values in stats.items():
if values == max(stats.values()):
new_stats[key] = values