gpt4 book ai didi

python - 如何使用任意长度的键更新 python 字典?

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:14 41 4
gpt4 key购买 nike

我正在使用 python 2.4 更新一个非常复杂且可能未知的字典,并且键复杂但明确。例如,字典是:

dict1 = {
'server' : {
'index' : 0,
'info' : {
'ip' : '127.0.0.1',
'user' : {
'number' : 1001,
'tel' : '123456'
}
}
}
}

现在我想使用键'server'-'info'-'user'-'number'更新(删除或修改)它。

我想使用显式键列表来更新字典,而我只知道字典对象,除了它的内部数据,我该怎么办?

最佳答案

考虑

>>> def get_nested(d, keys):
... return reduce(dict.get, [d] + keys)
...
>>> def set_nested(d, keys, value):
... get_nested(d, keys[:-1])[keys[-1]] = value
...
>>> dict1 = {
... 'server' : {
... 'index' : 0,
... 'info' : {
... 'ip' : '127.0.0.1',
... 'user' : {
... 'number' : 1001,
... 'tel' : '123456'
... }
... }
... }
... }
>>>
>>> keys = 'server-info-user-number'.split('-')
>>> get_nested(dict1, keys)
1001
>>> set_nested(dict1, keys, 2555)
>>> dict1
{'server': {'info': {'ip': '127.0.0.1', 'user': {'tel': '123456', 'number': 2555}}, 'index': 0}}

关于python - 如何使用任意长度的键更新 python 字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31625270/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com