Skip to main content
 首页 » 编程设计

Python:使用reduce交替加法和乘法

2025年05月04日16davidwang456

仅使用 reduce(因此不导入任何内容),我该如何编写一个单行函数来获得以下结果?它在列表中交替添加和乘以元素。

一切都需要适应reduce()

numbers = [1, 2, 3, 4, 5, 6] 
 
((1 + 2) * 3 + 4) * 5 + 6 = 71 

请您参考如下方法:

我猜你想要这样的东西:

print(reduce(lambda a, b: a[1] + b[1] if isinstance(a,tuple)  
           else a + b[1] if b[0] % 2 else a * b[1], enumerate(numbers))) 

分割:

print( reduce(lambda a, b: a[1] + b[1] if isinstance(a, tuple)  
                           else a + b[1] if b[0] % 2  
                           else a * b[1],  
              enumerate(numbers) 
             ) 
)