这很难描述,所以我主要在代码中展示它。我正在列出一个数字列表并将其附加到一个主列表 主列表中的第一个列表将是每个列表的第一个元素。我会在主列表中插入0适当的索引。然后我会继续下一个清单。我会选择第二个列表的第一个元素并将其附加到主列表中的第二个列表,因为它的索引将是1,我会将0插入该列表的第一个索引。这是令人困惑的,如果您对此有任何疑问,请回复。我会快速回复。这真让我烦恼。
例如:
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 :(得分: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)