You need to enable JavaScript to run this app. Python如何为字典同一个key追加更新数据 避免原有值被覆盖
优惠活动
大模型
产品
解决方案
定价
更多

Python如何为字典同一个key追加更新数据 避免原有值被覆盖

问题核心原因

Python 字典的键具有全局唯一性,你贴的预期输出格式本身就是无效的Python字典结构,哪怕你手动写出那样的重复key字典,运行后只会保留最后一个key1对应的值,前面的会被自动覆盖。你原本使用的update方法遇到重复key时会直接覆盖旧值,这就是你拿不到预期结果的直接原因。另外注意不要用dict作为变量名,这是Python内置类名,会覆盖原生功能。

解决方案

根据你的实际使用场景,可选两种实现方式:

方案1:同键对应嵌套列表(保留字典结构)

如果不想改动字典的基础结构,可以把同一个key对应的所有值存为嵌套列表,需要取值时按索引调取即可:

# 初始化字典
my_dict = {}
key1 = "key1"

# 第一次写入数据
if key1 not in my_dict:
    my_dict[key1] = []
my_dict[key1].append(['value1', 'value2', 'value3'])

# 第二次写入同key数据
my_dict[key1].append(['value4', 'value5', 'value6'])

print(my_dict)
# 输出:{'key1': [['value1', 'value2', 'value3'], ['value4', 'value5', 'value6']]}

方案2:用列表套元组存储(支持重复键)

如果必须保留重复键的配对结构,放弃字典改用列表存储键值对元组即可:

data = []
key1 = "key1"

data.append((key1, ['value1', 'value2', 'value3']))
data.append((key1, ['value4', 'value5', 'value6']))

print(data)
# 输出:[('key1', ['value1', 'value2', 'value3']), ('key1', ['value4', 'value5', 'value6'])]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 12:36:09