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
相关产品推荐
相关产品推荐

