gpt4 book ai didi

python - 在 python 中向嵌套字典添加新键

转载 作者:行者123 更新时间:2023-11-28 20:26:32 27 4
gpt4 key购买 nike

我需要为嵌套字典中的每个项目添加一个值增加 1 的键。我一直在尝试使用 dict['key']='value' 语法,但无法使其用于嵌套字典。我敢肯定这是一个非常简单的。

我的字典:

mydict={'a':{'result':[{'key1':'value1','key2':'value2'},
{'key1':'value3','key2':'value4'}]}}

这是将键添加到字典主要部分的代码:

for x in range(len(mydict)):
number = 1+x
str(number)
mydict[d'index']=number

print mydict
#out: {d'index':d'1',d'a'{d'result':[...]}}

我想将新的键和值添加到方括号内的小字典中:

{'a':{'result':[{'key1':'value1',...,'index':'number'}]}}

如果我尝试在 for 循环 的最后一行添加更多层,我会收到回溯错误:

Traceback (most recent call last):
File "C:\Python27\program.py", line 34, in <module>
main()
File "C:\Python27\program.py", line 23, in main
mydict['a']['result']['index']=number
TypeError: list indices must be integers, not unicode

我已经尝试了各种不同的方式来列出嵌套项目,但没有任何乐趣。有人可以帮我吗?

最佳答案

问题是 mydict 不仅仅是嵌套字典的集合。它还包含一个列表。分解定义有助于理清内部结构:

dictlist = [{'key1':'value1','key2':'value2'},
{'key1':'value3','key2':'value4'}]
resultdict = {'result':dictlist}
mydict = {'a':resultdict}

所以要访问最里面的值,我们必须这样做。向后工作:

mydict['a'] 

返回resultdict。然后这个:

mydict['a']['result']

返回字典列表。然后这个:

mydict['a']['result'][0]

返回 dictlist 中的第一项。最后,这个:

mydict['a']['result'][0]['key1']

返回 'value1'

所以现在您只需修改您的 for 循环以正确迭代 mydict。可能有更好的方法,但这是第一种方法:

for inner_dict in mydict['a']['result']: # remember that this returns `dictlist`
for key in inner_dict:
do_something(inner_dict, key)

关于python - 在 python 中向嵌套字典添加新键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371691/

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