[英]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.