2012-05-16 3 views
0

파이썬에서 변수 (및 그 출력)에 동일한 함수 multiple times을 적용하는 지름길이 있습니까?파이썬에서 연쇄 함수 응용 프로그램

뭔가 같은 :

# n times foo(x) 

대신

foo(foo(foo...(foo(x))))...) 
+0

앞에'for' 루프를 할 수있는 일반적인 재귀 함수를 만드는 것은이 가장 적합합니다. – jamylak

답변

5
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) 
+0

나는 지름길이 좋아 : D – jamylak

+0

지름길이 너무 영리하다. –

3
def double(x): 
    return x * 2 

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

당신은 루프에 대한 간단한 의미가 있을까요? 내가 생각할 수있는 방법

1

하나는이

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

파이썬에서 체크되지 않은 재귀는 거의 항상 나쁜 생각입니다. – BluePeppers