2014-03-26 66 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)