のは、私は辞書のリストがあるとしましょう:戻り辞書
>>> d = [{'a': 2, 'b': 3, 'c': 4}, {'a': 5, 'b': 6, 'c': 7}]
をそして私は、私は、各辞書に一つだけ値を変更するマップの操作を実行します。辞書は多くのアイテムを持っている場合、これは手に負えない取得することができます
>>> map(lambda x: {'a': x['a'], 'b': x['b'] + 1, 'c': x['c']}, d)
[{'a': 2, 'c': 4, 'b': 4}, {'a': 5, 'c': 7, 'b': 7}]
:それを行うための1つの可能な方法は、単純に変更したものと一緒に元の値を含む新しい辞書を作成することです。
別の方法は、所望の値を変更するコピー元の辞書機能を定義するかもしれない:
>>> def change_b(x):
... new_x = x.copy()
... new_x['b'] = x['b'] + 1
... return new_x
...
>>> map(change_b, d)
[{'a': 2, 'c': 4, 'b': 4}, {'a': 5, 'c': 7, 'b': 7}]
これは、しかし、別の関数を書く必要とラムダ式の優雅さを失います。
良い方法がありますか?
これは元の 'd'を変更します。 –