假设我有以下列表:A = [1,2,3,4]
,通过使用reduce
函数来查找元素的乘积,我可以
prodA = reduce(lambda x,y: x*y, A)
但是,如果我有另一个列表B=[9,8,7,6]
,我是否仍然可以使用reduce
函数执行以下操作?(从上到下指示步骤)
9
(9+1)* 2
((9+1) *2)+8
(((9+1) *2)+8)*3
((((9+1) *2)+8)*3)+7
(((((9+1) *2)+8)*3)+7)*4
((((((9+1) *2)+8)*3)+7)*4)+6
我不太确定是否可以为B
函数添加类似列表reduce
的迭代器。我怎么能做到?非常感谢
您可以使用zip作为输入,1作为初始值:
这看起来像是^{} 的工作。具体来说,我们将把这两个列表压缩在一起,然后将我们的缩减函数表示为一个接受元组而不是简单整数的函数
将我们的列表压缩在一起可以让我们
在每一步中,您的函数将乘以一个
A
元素,然后添加一个B
元素。因此,从1
开始(这是一个合理的默认值,因为我们做的第一件事是乘法,所以1
将是第一个操作的标识),乘以元组的第一个元素,然后添加第二个元素通过您的输入,我们得到
370
,它等于相关问题 更多 >
编程相关推荐