辞書_dict
と変数n
があると仮定できます。辞書の既存の値を更新するもっと平凡な方法
_dict = {'a': 9, 'b': 7, 'c': 'someValue'}
n = 8
たとえば、1つのエントリのみを更新したいとします。 n
の値がb
の実際の値より大きい場合に限り、{'b': 7}
になります。 私が得た解決策は、これまで{'a': 9, 'b': 8, 'c': 'someValue'}
の望ましい結果を提供
_dict.update({'b': n for key, value in _dict.items() if key == 'b' and n > value})
です。だから今私の質問に:これを行うためのより短い、よりpythonicな方法はありますか?
_dict['b'] = max(_dict['b'], n)
以上:あなただけの1つのキーを更新する必要がある場合は、ループにはポイントが存在しないことを
if n > _dict['b']:
_dict['b'] = n
なぜ新しい辞書を作成する必要がありますか? 'if'条件でこれを書くことができます。 – thefourtheye
あなたは** one **キーのためになぜループしていますか?あなたは単に直接それにアクセスすることができます。 –
@MartijnPieters @thefortheye私はこれまで、単一の値を条件付きで 'if'節で更新しようとしましたが、それはうまくいきませんでしたので、すぐに辞書をループするようにエスカレートしました。(私の場合は、 5-10キー)。しかし、あなたのアドバイスに感謝 – heiiRa