gpt4 book ai didi

python - python中的顺序函数映射

转载 作者:行者123 更新时间:2023-11-28 20:40:39 26 4
gpt4 key购买 nike

我在列表中有一堆函数:

funcs = [f1, f2, f3, f4, f5]

所有函数都返回一个参数,例如。

f1 = lambda x: x*2

我想将所有这些功能映射在一起

result = lambda x: f5(f4(f3(f2(f1(x)))))

或者,遍历 funcs

def dispatch(x):
for f in funcs:
x = f(x)
return x

dispatch 工作正常,但我想不出一个干净的方法来使用 iterools 来做到这一点。是否可以?这个顺序函数映射成语有名字吗?

最佳答案

在这里使用 itertools 没有意义;您正在生成 one 输出,并且您无法将其应用于无限迭代。您必须在输入可迭代中具有有限个函数才能使其正常工作。

使用 reduce() function :

from functools import reduce

x = reduce(lambda res, func: func(res), funcs, x)

functools.reduce() import有助于在 Python 2 和 3 中完成上述工作。

reduce(),与 map()filter() 以及 itertools 一起,是functional programming中常用的工具.

关于python - python中的顺序函数映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35398472/

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