【发布时间】:2016-10-05 10:10:26
【问题描述】:
给定索引列表(任意长度)和嵌套 Python list/dict 对象的“路径”,我如何写入列表中的对象部分?
例如,这可能是我的对象(它是从 JSON 文件加载的):
data = {"dogs":[{"tail": True, "properties":{"test":1}}]}
我的索引列表可能类似于 ["dogs", 0, "properties"]。
如果我想检索路径中的值,我可以这样做:
>>> data = {"dogs":[{"tail": True, "properties":{"test":1}}]}
>>> path = ["dogs", 0, "properties"]
>>> mydata = data
>>> for i in path:
... mydata = mydata[i]
...
>>> mydata
{'test': 1}
但是说我想修改路径中的对象在整个结构中?上面的代码是按值传递,而不是通过引用,所以我认为我不能重用它。我能做什么?
【问题讨论】:
标签: python dictionary nested pass-by-reference pass-by-value