2013-07-08 4 views
2

각 함수 호출 후에 반환되는 값을 변경하는 함수를 사용하여 여러 함수 호출의 결과 배열을 생성하는 좋은 방법은 무엇입니까? 예를 들어, 내가 호출 할 때마다 이 'callno-X'을 반환하고 X가 매번 1 씩 증가한다고 가정 해 봅시다. bar(5) 같은 것을 말할 수 있고 foo()을 다섯 번 호출하고 결과를 배열로 수집하여 ['callno-1','callno-2','callno-3','callno-4','callno-5']을 반환 할 수 있기를 원합니다. 이 작업을 수행하는 좋은 방법이 있습니까? 이 방법에 대해Python - 반환 값을 변경하는 함수에서 반환 값 배열을 생성합니다.

returnValues = [foo() for x in xrange(5)] 
+3

목록 이해력? –

+0

충분한 시간을두고 [발전기] (http://www.jeffknupp.com/blog/2013/04/07/improve-your-python-yield-and-generators-explained/)와 'yield' 진술서; 그것은 당신이 관찰하고있는 패턴과 분명히 관련이 있습니다. – 9000

답변

7

그냥 지능형리스트를 사용합니다.

+0

허. 나는 그것이 효과가있을 것이라고 생각한다. 감사! – Kvass

+0

롤 빠른 답변. accept = P – Kvass

1

: 그것은 짧고 간단

map(foo, xrange(5)) 

+0

지도와 목록 모두를 이해하는 것은 기본적으로 같은 일을합니다. 내 문제는 그 중 한 명을 내 사례와 함께 작동시키는 방법을 찾는 것이 었습니다. 그 방법은 그다지 어렵지 않았습니다 (나는 일시적으로 범위를 잊어 버렸습니다). – Kvass