2015-11-28 107 views
0

所以這裏的任意長度的名單是什麼,我有一個例子:荏苒名單

x1 = [1,2,3] 
x2 = [4,5,6] 

如果我運行:

x3 = zip([x1,x2]) 

我得到:[([1,2,3],),([4,5,6])]

,如果我運行:

x3 = zip(x1,x2) 

我得到了我在尋找:[(1,4),(2,5),...]

這是問題的癥結所在:

我有,我想將其定義爲一個函數簽名:

def function(...): 
    return [x1,x2,...],y 

其中x1和x2,......均列表和X的數量是任意......

,我需要壓縮輸出,使得我有,主要有:

[(x1[0],x2[0],...,xn[0]), (x1[1],x2[1],...,xn[1]),...,(x1[n2],x2[n2],...,xn[n2])] 

如果我不是輸出功能的元組,拉鍊還是失敗(它拉鍊它像一個列表):

def function(x1,x2): 
    return (x1,x2) 

x4 = zip(function(x1,x2)) 

output: [([1,2,3],),...] 

我能想到的唯一的事情就是不知何故積累的說法...但我有一種感覺,我想用zip做什麼可能是不可能的。有沒有辦法返回一個向量列表,並將它們轉換爲行列表,其中的元素是每個向量的第一個元素?我真的寧願避免python for循環來做到這一點...(甚至有可能積累一個參數傳遞給一個函數?)

回答

3

一如既往。

zip(*[x1,x2])