2012-11-19 33 views
3

我有3個數組,a1,a2,a3Python,返回新行多個數組

我想一次返回所有三個數組。

return a1, a2, a3 但它返回他們都在同一行,我不知道我會怎樣回報他們每一個新行

+4

你是指「在同一行」還是「在新行」? – BrenBarn

+0

如果你想*看看它們自己的行中的數組,請使用'pprint'模塊:'import pprint; pprint.pprint(your_func())'。如果是關於任務的話,那麼John的口號是有效的。 – cji

回答

1

你問到能夠做到

而不是
return a1 
return a2 
return a3 

return a1, a2, a3 

???

如果是這樣,我很抱歉,但你不能這樣做。當你使用return a1, a2, a3時,你實際上只返回一個東西,一個包含3個列表的元組。執行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] 

返回值,或者將它打印在三線這樣

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

如果A1,A2,A3相同的長度,你可以試試這

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)