我有以下需要相乘的字典:
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 的操作,因此我们可以使用 | 来指示两个字典中键之间的并集。
