我有一个像
这样的清单[[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,0
。 i[1]
等于1
的{{1}}位于前面,因为i[2]
值为1
。同样,对于i = 3
,i[1] = 1
,所以序列为0,1,0,0,0
,因为i[2]
值为2
=> 1
位于零序列的第二位。
通常,i[1]
值将以零序列的形式进入i[2]
位置。如果i[[1] = 8
和i[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],...]
我不确定这是否合理,但请确认要求更多说明。
答案 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]
快乐解析