

今、 dict `d` と、その特定の要素に対するアップデートとして適用したい関数 `f` があります。今、 dict のキー `k`
に対して、以下の操作を行いたいです。

[code]

    d[k] = f(d[k])
    
[/code]

これは、このように変数名が短い場合には、そこまで問題にはなりませんが、変数名が長くなってくると、これを行うのがつらくなってきます。

### 質問

「dict の要素に対して関数 f を適用してアップデートを行う」を、綺麗に記述する方法などないでしょうか？

イメージとして、以下のような操作ができるといいなと思っています。

[code]

    d.replace(f, k)
    
[/code]


CC BY-SA 4.0
2019-04-12T03:53:18.910
54109
2019-04-12T05:33:26.303
754
question
python
python で dict の特定の要素を関数適用でアップデートしたい


`dict` 型はミュータブルなので、関数の中で直接書き換えることが可能です。以下の例のように、 `f(d, k)` として関数適用を行うことが可能です。

[code]

    def value_add_one(dic, key):
        dic[key] += 1
    
    
    def main():
        some_dict = {
            "Alice": 10,
            "Bob": 20,
        }
        value_add_one(some_dict, "Bob")
        print(some_dict) # => {'Alice': 10, 'Bob': 21}
    
    
    if __name__ == "__main__":
        main()
    
[/code]

ちなみに、イミュータブルな `dict` 型として、 `frozendict` 型もあります。


CC BY-SA 4.0
2019-04-12T05:33:26.303
54115
2019-04-12T05:33:26.303
29826
54109
answer