仅使用 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)
)
)
