torch.fx.experimental.unification.unification_tools.update_in
-
torch.fx.experimental.unification.unification_tools.update_in(d, keys, func, default=None, factory=<class 'dict'>)[исходный код] -
Обновляет значение во (возможно) вложенном словаре
Входные данные: d — словарь, над которым выполняется операция; keys — список или кортеж, задающий расположение значения в d, которое нужно изменить; func — функция, применяемая к этому значению
Если keys == [k0,..,kX] и d[k0]..[kX] == v, update_in возвращает копию исходного словаря, в которой v заменено на func(v), но не изменяет исходный словарь.
Если k0 не является ключом в d, update_in создает вложенные словари глубиной, заданной keys, и присваивает внутреннему значению func(default).
>>> inc = lambda x: x + 1 >>> update_in({"a": 0}, ["a"], inc) {'a': 1}>>> transaction = { ... "name": "Alice", ... "purchase": {"items": ["Apple", "Orange"], "costs": [0.50, 1.25]}, ... "credit card": "5555-1234-1234-1234", ... } >>> update_in(transaction, ["purchase", "costs"], sum) {'credit card': '5555-1234-1234-1234', 'name': 'Alice', 'purchase': {'costs': 1.75, 'items': ['Apple', 'Orange']}}>>> # updating a value when k0 is not in d >>> update_in({}, [1, 2, 3], str, default="bar") {1: {2: {3: 'bar'}}} >>> update_in({1: "foo"}, [2, 3, 4], inc, 0) {1: 'foo', 2: {3: {4: 1}}}- Тип возвращаемого значения:
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.fx.experimental.unification.unification_tools.update_in.html