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

Python中如何向Dictionary追加键值对而非覆盖原有数据?

问题根源

你现在碰到的问题其实很好理解——字典的键天生具有唯一性。你用{**data, **new_dict}这种方式合并两个字典时,只要键名重复,后面字典里的键值对就会直接覆盖前面的。你那两个字典里的键(比如level_a_title)完全一样,所以第二个磁盘的信息直接把第一个的给替换掉了,自然看不到“追加”的效果。

两种正确的实现方法

根据你的需求,给你推荐两种常用的解决方案:

方法1:把data做成字典的列表(最推荐)

如果每个磁盘都是独立的条目,用列表来装这些字典是最合理的结构,既能轻松追加新数据,后续操作也更清晰:

# 先初始化一个装磁盘信息的列表
data = [
    {'level_a_title': 'Disk 1', 'level_a_show_on_analysis_report': '1', 'level_a_type': 'text', 'level_a_value': 'Windows'}
]

# 直接用append追加新的磁盘字典就行
data.append({'level_a_title': 'Disk 2', 'level_a_show_on_analysis_report': '1', 'level_a_type': 'text', 'level_a_value': 'Backup'})

# 遍历打印所有磁盘信息
for i, disk_info in enumerate(data, start=1):
    print(f"=== 第{i}个磁盘 ===")
    for key, value in disk_info.items():
        print(f"{key} = {str(value)}")

运行后会输出:

=== 第1个磁盘 ===
level_a_title = Disk 1
level_a_show_on_analysis_report = 1
level_a_type = text
level_a_value = Windows
=== 第2个磁盘 ===
level_a_title = Disk 2
level_a_show_on_analysis_report = 1
level_a_type = text
level_a_value = Backup

方法2:修改键名,保证每个键唯一

如果你非要用单个字典来存,那得给每个磁盘的键加个唯一标识(比如序号),避免键名重复:

# 初始化第一个磁盘的信息,键名带_1后缀
data = {'level_a_1_title': 'Disk 1', 'level_a_1_show_on_analysis_report': '1', 'level_a_1_type': 'text', 'level_a_1_value': 'Windows'}

# 用update方法追加第二个磁盘的键值对,键名带_2后缀
data.update({
    'level_a_2_title': 'Disk 2', 
    'level_a_2_show_on_analysis_report': '1', 
    'level_a_2_type': 'text', 
    'level_a_2_value': 'Backup'
})

# 打印所有内容
for key, value in data.items():
    print(f"{key} = {str(value)}")

运行输出:

level_a_1_title = Disk 1
level_a_1_show_on_analysis_report = 1
level_a_1_type = text
level_a_1_value = Windows
level_a_2_title = Disk 2
level_a_2_show_on_analysis_report = 1
level_a_2_type = text
level_a_2_value = Backup
小建议

强烈推荐第一种方法,列表存字典的结构完全符合“多个同类数据条目”的场景,不管是后续要加更多磁盘,还是要筛选、修改某个磁盘的信息,都会方便很多。用单个字典的话,键名要自己手动维护唯一性,时间长了很容易出错,代码也会变得乱糟糟的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:49:24