2012-11-19 2 views
3

배열이 3 개 있습니다. a1, a2, a3파이썬, 새 줄에 여러 배열을 반환하십시오.

세 번에 모두 반환하고 싶습니다. 내가

return a1, a2, a3

을 가지고 있지만이 같은 줄에 모두 반환

, 나는

+4

"같은 줄에"또는 "새 줄에"이라는 것은 무엇을 의미합니까? – BrenBarn

+0

각 줄의 배열을 보시려면'pprint' 모듈을 사용하십시오 :'import pprint; pprint.pprint (your_func())'. 임무에 관한 것이라면 존의 퀘스트가 유효합니다. – cji

답변

1

당신이 할 수 있기를 묻는 새로운 줄에 각각 반환 궁금 해서요

return a1 
return a2 
return a3 

대신

return a1, a2, a3 

???

만약 그렇다면 미안하지만 그렇게 할 수는 없습니다. return a1, a2, a3을 사용하면 실제로 한 가지를 반환하고, 세 개의 튜플을 반환합니다. return 문을 실행하면 호출자에게 현재 범위/컨텍스트가 반환됩니다. 이것이 당신이하려는 일이 아니라면, 당신이 무엇을하고 있는지 좀 더 분명하게 설명하십시오.

+0

반환 된 튜플을 괄호로 묶으면 각 요소를 그 줄에 쓸 수 있습니다. 질문은 모호하고 추측하고 있습니다. 아마도 그가 후일 것입니까? – cji

1

메소드에서 한 번만 반환 할 수 있습니다. 그러나 데이터는 여전히 별도의 행에서 액세스 할 수 있습니다.

def dosomething(): 
    ... 
    return a1, a2, a3 

myTuple = dosomething() 
first = myTuple[0] 
second = myTuple[1] 
third = myTuple [2] 
8

이 뜻입니까?

>>> def f(): 
... a1 = [1, 2, 3] 
... a2 = [4, 5, 6] 
... a3 = [7, 8, 9] 
... return a1, a2, a3 
... 
>>> f() 
([1, 2, 3], [4, 5, 6], [7, 8, 9]) 

>>> b1, b2, b3 = f() 
>>> b1 
[1, 2, 3] 
>>> b2 
[4, 5, 6] 
>>> b3 
[7, 8, 9] 

같은 반환 값을 풀고 또는 A1은 A2, A3는 같은 길이, 당신이 시도 할 수있는 경우이

>>> print "\n".join(str(x) for x in f()) 
[1, 2, 3] 
[4, 5, 6] 
[7, 8, 9] 
0

같은 3 선에 인쇄 할 수 있습니다 이

a1 = [1, 2, 3] 
a2 = [4, 5, 6] 
a3 = [7, 8, 9] 
[ (a1[x],a2[x],a3[x]) for x in range(len(a1)) ] 

>>> [(1, 4, 7), (2, 5, 8), (3, 6, 9)] 
0

나는 당신이 배열을 다루고 있다고 생각한다. 문자열과 같이 - 배열은 말의 "줄"을 확장하지 않습니다.

어쩌면 이것이 당신이 찾고있는 것일 수 있습니다. 내가 제대로 이해한다면.

return str(a1)+'\n'+str(a2)+'\n'+str(a3) 
관련 문제