You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向字典中的数组追加新字典?及如何用for循环实现?

解决字典中列表追加元素的问题

嘿,我来帮你搞定这个问题!你现在的代码之所以会出问题,是因为dict1['c']是一个列表,你试图用+运算符把它和一个字典newvalue直接相加——但列表的+操作要求右边必须也是列表,不能直接加单个字典,这就会触发类型错误啦。

直接追加单个字典的正确方法

要给c对应的列表追加新字典,用列表的append()方法就可以了,这是最直接的方式:

dict1 = { 'a': 1, 'b': 2, 'c': [{'aa': 11, 'bb': 22}]}
newvalue = {'aa': 111, 'bb': 222}
dict1['c'].append(newvalue)

# 执行后dict1就是你想要的结果:
# {'a': 1, 'b': 2, 'c': [{'aa': 11, 'bb': 22}, {'aa': 111, 'bb': 222}]}

用for循环实现追加操作

如果需要批量追加多个字典,或者要从设备获取值循环生成新字典再追加,就可以用for循环来处理,分两种常见场景:

场景1:批量追加已有的多个字典

如果你已经有一堆要添加的字典存在列表里,直接循环遍历逐个append:

dict1 = { 'a': 1, 'b': 2, 'c': [{'aa': 11, 'bb': 22}]}
# 假设这是从设备获取到的多个新值
new_values = [{'aa': 111, 'bb': 222}, {'aa': 333, 'bb': 444}, {'aa': 555, 'bb': 666}]

for val in new_values:
    dict1['c'].append(val)

# 最终结果:
# {'a': 1, 'b': 2, 'c': [{'aa': 11, 'bb': 22}, {'aa': 111, 'bb': 222}, {'aa': 333, 'bb': 444}, {'aa': 555, 'bb': 666}]}

场景2:循环生成新字典并追加

如果需要从设备获取一系列值,动态生成字典再追加,比如你有设备返回的aa和bb序列:

dict1 = { 'a': 1, 'b': 2, 'c': [{'aa': 11, 'bb': 22}]}

# 模拟从设备获取的aa和bb值列表
device_aa_data = [111, 333, 555]
device_bb_data = [222, 444, 666]

# 用zip配对两个列表的元素,循环生成字典并追加
for aa, bb in zip(device_aa_data, device_bb_data):
    new_dict = {'aa': aa, 'bb': bb}
    dict1['c'].append(new_dict)

这样就能轻松实现你想要的批量追加效果啦~

内容的提问来源于stack exchange,提问作者netkool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:47:00