我能够使用map
并sum
实现此功能,但如何使用reduce
?
有 2 个列表:a
, b
,它们具有相同数量的值。我要计算
a[0]*b[0]+a[1]*b[1]+...+a[n]*b[n]
我使用的工作版本map
是
value = sum(map(lambda (x,y): x*y, zip(a, b)))
那怎么用reduce
呢?我写:
value = reduce(lambda (x,y): x[0]*y[0] + x[1]*y[1], zip(a, b)))
我得到了错误“ TypeError: 'float' object is unsubscriptable
”。
任何人都可以对此有所了解吗?