2014-03-26 65 views
1

這是很難描述的,所以我會主要以代碼的形式展示它。我正在獲取數字列表的列表並將其附加到masterList。
主列表中的第一個列表將是每個列表的第一個元素。我會在主列表中的相應索引中插入0。然後我會轉到下一個列表。我會選擇第二個列表的第一個元素,並將其附加到主列表中的第二個列表,因爲它的索引是1,我會向該列表的第一個索引插入0。這是令人困惑的,如果您對此有任何疑問,請回複評論。我會很快回復。這真是讓我煩惱。將數字列表附加到新列表python

例如:

L = [[], [346], [113, 240], [2974, 1520, 684], [169, 1867, 41, 5795]] 

我想是這樣的:

[[0,346,113,2974,169],[346,0,240,1520,1867],[113,240,0,684,41],[2974,1520,684,0,5795],[169,1867,41,5795,0]] 
+0

確實有點令人困惑。請發佈迄今爲止嘗試過的代碼。給出一些你爲什麼想要這樣做的背景,人們可以給出更好的答案。您應該閱讀StackOverflow幫助以獲取在此提出編程問題的最低要求步驟。 –

回答

1

IIUC,你要像

>>> L = [[], [346], [113, 240], [2974, 1520, 684], [169, 1867, 41, 5795]] 
>>> [x+[0]+[L[j][i] for j in range(i+1, len(L))] for i, x in enumerate(L)] 
[[0, 346, 113, 2974, 169], [346, 0, 240, 1520, 1867], 
[113, 240, 0, 684, 41], [2974, 1520, 684, 0, 5795], 
[169, 1867, 41, 5795, 0]] 

這可能是更容易的擴展形式爲:

combined = [] 
for i, x in enumerate(L): 
    newlist = x + [0] 
    for j in range(i+1, len(L)): 
     newlist.append(L[j][i]) 
    combined.append(newlist)