链接python中的函数应用程序

时间:2012-05-16 05:40:17

标签: python function

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

类似的东西:

# n times foo(x)

而不是

foo(foo(foo...(foo(x))))...)

3 个答案:

答案 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)