Skip to main content
 首页 » 编程设计

python之将两个字典中的值相乘,但一个字典中不存在一对键和值

2025年05月04日22myhome

我有以下需要相乘的字典:

dict1 = {'fred': 2, 'andrew': 2, 'judy': 1, 'george': 1} 
dict2 = {'andrew': 4, 'fred': 2, 'judy': 2, 'george': 1, 'john': 1} 

我正在使用

count = {k: dict1[k]*dict2[k] for k in dict1} 

它给了我输出:

{'fred': 4, 'andrew': 8, 'judy': 2, 'george': 1} 

因为 john 不包含在 dict1 中,但我需要 'john' 的值为 '0',这可能吗?

我怎样才能让它成为:

count = {'fred': 4, 'andrew': 8, 'judy': 2, 'george': 1, 'john': 0} 

请您参考如下方法:

使用 dict.get 和字典键的联合:

count = {k: dict1.get(k, 0) * dict2.get(k, 0) for k in dict1.keys() | dict2.keys()} 

dict.get 允许一个可选的默认参数,如果在字典中找不到该键,则使用该参数。

字典键的 View 允许类似 set 的操作,因此我们可以使用 | 来指示两个字典中键之间的并集。