0

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

就像是:

# n times foo(x)

代替

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

3 回答 3

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

如果您需要保留 x,请使用不同的名称

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

如果您迫切需要捷径(例如 codegolf)

reduce(lambda x,y:foo(x),[x]*n)
于 2012-05-16T05:42:19.517 回答
3
def double(x):
    return x * 2

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

你的意思是一个简单的for循环吗?

于 2012-05-16T05:42:26.940 回答
1

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

def repeatX(foo, output, count):
      if not count:
         return output
      else:
         return repeatX(foo, foo(output), count -1)
于 2012-05-16T05:51:15.240 回答