gpt4 book ai didi

python - 循环地将操作数列表缩减为单个结果

转载 作者:行者123 更新时间:2023-11-28 22:17:49 25 4
gpt4 key购买 nike

(这是另一个问题的重新哈希、 self 回答的版本,该问题已被关闭,因为它没有被很好地问到。)

我有一个整数列表:

numbers = [1, 2, 3, 4, 5, 6]

我的目标是对这些数字依次交替应用求和乘法运算符以获得单一结果。

例如,对于这个输入,结果是

((1 + 2) * 3 + 4) * 5 + 6

减少到 71。本质上,这可以分解为:

t1 =  1 + 2 
t2 = t1 * 3
t3 = t2 + 4
...

等等。

奖励:可以推广到两个以上循环操作的解决方案将受到欢迎。

最佳答案

这里有一个稍微不同的答案,避免在 lambda 函数中使用 next

import operator
from itertools import cycle

def apply_cyclic(numbers, functions):
numbers = iter(numbers)
functions = cycle(functions)
result = next(numbers)
for num, fun in zip(numbers, functions):
result = fun(result, num)
result num

print(apply_cyclic([1,2,3,4,5,6], [operator.add, operator.mul]))

关于python - 循环地将操作数列表缩减为单个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51016179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com