Python – Product 和 Inter Summation 字典值
有时,在使用Python字典时,我们可能会遇到需要执行整个值列表的乘积并将每个列表的乘积与其他列表相加的问题。这种应用程序在 web 开发和日常编程中。让我们讨论可以执行此任务的某些方式。
Input : test_dict = {‘gfg’ : [4], ‘is’ : [3], ‘best’ : [5]}
Output : 60
Input : test_dict = {‘gfg’ : [0]}
Output : 0
方法#1:使用zip() + map() + sum()
+ loop
上述功能的组合可以用来解决这个问题。在此,我们使用 sum() 对值求和,zip() 绑定所有值。 map() 用于绑定值列表中所有元素的乘法逻辑。所有这些都是使用循环绑定的。
# Python3 code to demonstrate working of
# Product and Inter Summation dictionary values
# Using zip() + map() + sum() + loop
# helper function
def mul(sub):
res = 1
for ele in sub:
res *= int(ele)
return res
# initializing dictionary
test_dict = {'gfg' : [4, 5, 6], 'is' : [1, 3, 4], 'best' : [7, 8, 9]}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Product and Inter Summation dictionary values
# Using zip() + map() + sum() + loop
temp = zip(*test_dict.values())
res = sum(map(mul, temp))
# printing result
print("The summations of product : " + str(res))
The original dictionary : {‘best’: [7, 8, 9], ‘is’: [1, 3, 4], ‘gfg’: [4, 5, 6]}
The summations of product : 364
方法 #2:使用map() + reduce() + lambda + zip() + sum()
+ generator 表达式
上述功能的组合可以用来解决这个问题。在此,我们使用 reduce 和 lambda 执行乘法任务,生成器表达式执行迭代任务。
# Python3 code to demonstrate working of
# Product and Inter Summation dictionary values
# Using map() + reduce() + lambda + zip() + sum() + generator expression
from functools import reduce
# initializing dictionary
test_dict = {'gfg' : [4, 5, 6], 'is' : [1, 3, 4], 'best' : [7, 8, 9]}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Product and Inter Summation dictionary values
# Using map() + reduce() + lambda + zip() + sum() + generator expression
res = sum(map(lambda ele: reduce(lambda x, y: int(x) * int(y), ele),
zip(*test_dict.values())))
# printing result
print("The summations of product : " + str(res))
The original dictionary : {‘best’: [7, 8, 9], ‘is’: [1, 3, 4], ‘gfg’: [4, 5, 6]}
The summations of product : 364