gpt4 book ai didi

Python:编写 n 个函数组合的更好方法?

转载 作者:行者123 更新时间:2023-11-28 19:39:36 24 4
gpt4 key购买 nike

我写了一个函数“rep”,它接受一个函数 f 并接受 f 的 n 个组合。所以 rep(square,3) 的行为是这样的:square(square(square(x)))。当我将 3 传递给它时,rep(square,3)(3)=6561。

我的代码没有问题,但我想知道是否有办法让它“更漂亮”(或更短)而无需调用另一个函数或导入任何东西。谢谢!

def compose1(f, g):
"""Return a function h, such that h(x) = f(g(x))."""
def h(x):
return f(g(x))
return h

def rep(f,n):
newfunc = f
count=1
while count < n:
newfunc = compose1(f,newfunc)
count+=1
return newfunc

最佳答案

如果您追求速度,for 循环显然是最佳选择。但是,如果您正在寻找理论上的学术认可 ;-),请坚持使用简洁的功能习语。喜欢:

def rep(f, n):
return f if n == 1 else lambda x: f(rep(f, n-1)(x))

关于Python:编写 n 个函数组合的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20852263/

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