python中是否有一个快捷方式,用于将相同的函数multiple times
应用于变量(及其输出)?
类似的东西:
# n times foo(x)
而不是
foo(foo(foo...(foo(x))))...)
答案 0 :(得分:5)
for i in range(n):
x = foo(x)
如果您需要保留x,请使用其他名称
baz = x
for i in range(n):
baz = foo(baz)
如果你急于寻找快捷方式(例如for codegolf)
reduce(lambda x,y:foo(x),[x]*n)
答案 1 :(得分:3)
def double(x):
return x * 2
i = 44
for i in xrange(1,100):
i = double(i)
你能说一个简单的for循环吗?
答案 2 :(得分:1)
我能想到的一种方法是创建一个通用的递归函数来做到这一点
def repeatX(foo, output, count):
if not count:
return output
else:
return repeatX(foo, foo(output), count -1)