如何在 Python 中将两个字典相乘

在 Python 中使用 dict 理解将两个字典相乘,例如 result = {key: dict_1[key] * dict_2[key] for key in dict_1}。 字典理解迭代字典,我们可以将一个字典的值与另一个字典的相应值相乘。

dict_1 = {
    'a': 2,
    'b': 3,
    'c': 4,
}

dict_2 = {
    'a': 3,
    'b': 4,
    'c': 5
}

result = {key: dict_1[key] * dict_2[key] for key in dict_1}

# 👇️ {'a': 6, 'b': 12, 'c': 20}
print(result)


print(sum(result.values()))  # 👉️ 38

如何在 Python 中将两个字典相乘

我们使用 dict 理解来迭代其中一个字典。

字典推导与列表推导非常相似。

它们对字典中的每个键值对执行一些操作,或者选择满足条件的键值对子集。

在每次迭代中,我们从两个字典中访问相同的键并将值相乘。

或者,我们可以使用 dict.items() 方法来获取字典项目的视图。

dict_1 = {
    'a': 2,
    'b': 3,
    'c': 4,
}

dict_2 = {
    'a': 3,
    'b': 4,
    'c': 5
}

# 👇️ dict_items([('a', 2), ('b', 3), ('c', 4)])
print(dict_1.items())

result = {key: num * dict_2[key] for key, num in dict_1.items()}

# 👇️ {'a': 6, 'b': 12, 'c': 20}
print(result)

dict.items 方法返回字典项目((key, value)对)的新视图。

在每次迭代中,我们从第一个字典中解包键和值,并将值乘以第二个字典中的相应值。

如果我们需要获取新字典中值的总和,请将调用 dict.values() 的结果传递给 sum() 函数。

dict_1 = {
    'a': 2,
    'b': 3,
    'c': 4,
}

dict_2 = {
    'a': 3,
    'b': 4,
    'c': 5
}

# 👇️ dict_items([('a', 2), ('b', 3), ('c', 4)])
print(dict_1.items())

result = {key: num * dict_2[key] for key, num in dict_1.items()}

# 👇️ {'a': 6, 'b': 12, 'c': 20}
print(result)

print(result.values()) # 👉️ dict_values([6, 12, 20])

print(sum(result.values()))  # 👉️ 38

dict.values() 方法返回字典值的新视图。

sum() 函数接受一个可迭代对象,从左到右对其项求和并返回总数。