繁体   English   中英

python中的链接功能应用程序

[英]Chaining function applications in python

python中是否有快捷方式可将同一函数multiple times应用于变量(及其输出)?

就像是:

# n times foo(x)

代替

foo(foo(foo...(foo(x))))...)
for i in range(n):
    x = foo(x)

如果需要保留x,请使用其他名称

baz = x
for i in range(n):
    baz = foo(baz)

如果您迫切需要快捷方式(例如,用于代码高尔夫)

reduce(lambda x,y:foo(x),[x]*n)
def double(x):
    return x * 2

i = 44
for i in xrange(1,100):
    i = double(i)

您可以说一个简单的for循环吗?

我能想到的方法之一就是创建一个通用的递归函数来做到这一点

def repeatX(foo, output, count):
      if not count:
         return output
      else:
         return repeatX(foo, foo(output), count -1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM