首页 > 解决方案 > 如果大小不同,如何减去字典的值并打印负值

问题描述

我正在使用这个字典理解 dict2={key:a[key]-b.get(key,0) for key in a} 但没有得到想要的输出

a={'x'=3,'y'=4}
b={'x'=1,'y'=2,'z'=3}
c=a-b 

desired output={'x'=2,'y'=2,'z'=-3}

标签: pythondictionary

解决方案


a = {'x': 3, 'y': 4}
a.setdefault('z', 0)

b = {'x': 1, 'y': 2, 'z': 3}

desired_output = {k1: v1 - v2 for k1, v1 in a.items() for k2, v2 in b.items() if k1 == k2}

输出:

{'x': 2, 'y': 2, 'z': -3}

编辑:如果您不知道缺少哪些键:

for k1, v1 in b.items():
    if not k1 in a.keys():
        a.setdefault(k1, 0)

推荐阅读