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

Python合并字典:保留相同值,不同值按范围整合

Python字典合并:值相同保留,不同转为「X to Y」格式

给定两个字典:

x = {'a': 1, 'b': 2, 'c': 3, 'd':2}
y = {'a': 1, 'b': 3, 'c': 4, 'd':2}

需求:合并为新字典z,规则是键对应的值相同时保留原值,值不同时格式化为"X to Y"的形式。

实现方法

情况1:两个字典键完全一致

用字典推导式快速处理:

x = {'a': 1, 'b': 2, 'c': 3, 'd':2}
y = {'a': 1, 'b': 3, 'c': 4, 'd':2}

z = {
    key: x[key] if x[key] == y[key] else f"{x[key]} to {y[key]}"
    for key in x
}

print(z)

运行输出:

{'a': 1, 'b': '2 to 3', 'c': '3 to 4', 'd': 2}

情况2:两个字典键不完全一致

如果需要处理仅在其中一个字典存在的键,可改用循环遍历所有唯一键:

x = {'a': 1, 'b': 2, 'c': 3, 'd':2}
y = {'a': 1, 'b': 3, 'e': 5}

z = {}
# 遍历两个字典的所有唯一键
for key in x.keys() | y.keys():
    x_val = x.get(key)
    y_val = y.get(key)
    # 值相等时保留
    if x_val == y_val:
        z[key] = x_val
    # 仅x有该键时保留x的值
    elif y_val is None:
        z[key] = x_val
    # 仅y有该键时保留y的值
    elif x_val is None:
        z[key] = y_val
    # 值不同时格式化
    else:
        z[key] = f"{x_val} to {y_val}"

print(z)

运行输出:

{'a': 1, 'b': '2 to 3', 'c': 3, 'd': 2, 'e': 5}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:55:11