gpt4 book ai didi

python - 如何更改嵌套字典中的值

转载 作者:行者123 更新时间:2023-12-02 17:08:50 24 4
gpt4 key购买 nike

我需要更改嵌套字典中的值。考虑这本字典:

stocks = {
'name': 'stocks',
'IBM': 146.48,
'MSFT': 44.11,
'CSCO': 25.54,
'micro': {'name': 'micro', 'age': 1}
}

我需要遍历所有键并更改所有 name 键的值。

stocks.name
stocks.micro.name

这些键需要更改。但是,我不会事先知道要更改哪些键。因此,我需要遍历键并更改值。

示例

change_keys("name", "test")

输出

{
'name': 'test',
'IBM': 146.48,
'MSFT': 44.11,
'CSCO': 25.54,
'micro': {'name': 'test', 'age': 1}
}

最佳答案

支持未知嵌套层数的递归解决方案:

def change_key(d, required_key, new_value):
for k, v in d.items():
if isinstance(v, dict):
change_key(v, required_key, new_value)
if k == required_key:
d[k] = new_value

stocks = {
'name': 'stocks',
'IBM': 146.48,
'MSFT': 44.11,
'CSCO': 25.54,
'micro': {'name': 'micro', 'age': 1}
}


change_key(stocks, 'name', 'new_value')
print(stocks)
# {'name': 'new_value',
# 'MSFT': 44.11,
# 'CSCO': 25.54,
# 'IBM': 146.48,
# 'micro': {'name': 'new_value',
# 'age': 1}
# }

关于python - 如何更改嵌套字典中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50337256/

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