2015-08-13 53 views
-1

我有兩個列表,一個帶有參數名稱,另一個帶有引腳名稱,我試圖將這兩個列表組合成一個2d矩陣,但我無法獲得正確的語法。Python 2d數組迭代

例如:

list1 = [parm1,parm2,parm3] 
list2 = [end1,end2,end3] 

,我想矩陣爲:

matrix1= [[parm1+ end1,parm1+end2, parm1+end3] 
      [parm2+ end1,parm2+end2, parm2+end3] 
      [parm3+ end1,parm3+end2, parm3+end3] 

現在我的代碼是

for i in range(len(parm_name)): 
    for j in range(len(end_name)): 
     pin_name[i][j] = parm_name[i] + end_name[j] 

,它不工作。

+2

你會得到什麼錯誤?請參閱:http://stackoverflow.com/q/6667201/3465172 – Bobbyrogers

回答

2

而是重新分配的初始化過list元素,只需創建一個新的:

list1 = [parm1,parm2,parm3] 
list2 = [end1,end2,end3] 
matrix1 = [[p+e for e in list2] for p in list1] 

最後一行可以擴展成以下等效代碼:

matrix1 = [] 
for p in list1: 
    result = [] 
    for e in list2: 
     result.append(p+e) 
    matrix1.append(result) 
1

您可以創建matrix1如下:

matrix1 = [[p_name + e_name for e_name in list2] for p_name in list1] 

Yo你不要給太多的代碼,所以很難說你爲什麼不工作。我懷疑你沒有適當地初始化你的矩陣。但是你不需要初始化然後分配,你可以通過列表理解一步完成所有操作。