零序列

时间:2014-05-17 15:24:48

标签: python list

我有一个像

这样的清单
[[1,1,1],[2,1,1],[2,1,2],[2,5,3],[2,4,4],[2,3,5],...]

我需要在列表中的每个i上附加一系列零(最大长度为5),并根据i[1]值将i[2]添加到该序列中。

E.g。对于i = 0,零序列为1,0,0,0,0i[1]等于1的{​​{1}}位于前面,因为i[2]值为1。同样,对于i = 3i[1] = 1,所以序列为0,1,0,0,0,因为i[2]值为2 => 1位于零序列的第二位。

通常,i[1]值将以零序列的形式进入i[2]位置。如果i[[1] = 8i[2] = 4则序列= 0,0,0,8,0。这些序列中的每一个都需要附加到第i个阵列上。

我想要的输出是:

[[1,1,0,0,0,0],[2,1,0,0,0,0],[2,0,1,0,0,0],[2,0,0,5,0,0],[2,0,0,0,4,0],[2,0,0,0,0,5],...]

我不确定这是否合理,但请确认要求更多说明。

1 个答案:

答案 0 :(得分:3)

这是一个可怕的问题,你要求人们找到一个解决方案来处理一些设计糟糕的数据结构。但今天是星期六,我和oneliners玩得很开心:

d=[[1,1,1],[2,1,1],[2,1,2],[2,5,3],[2,4,4],[2,3,5]]

left = [[x[0]]+[0]*(x[2]-1)+[x[1]] for x in d]
print [l + [0]*(5-len(l)) for l in left]

快乐解析