我有一个整数列表x
,我想创建一个零的锯齿状列表y
,这样i
的行y
的长度是由i
的元素x
确定。
例如:
x = [1, 3, 4]
然后:
y = [[0], [0, 0, 0,], [0, 0, 0, 0]]
我该怎么做?
答案 0 :(得分:2)
试试这个单行:
x = [1, 3, 4]
y = [[0]*s for s in x]
现在y
将包含预期值:
y
=> [[0], [0, 0, 0], [0, 0, 0, 0]]
答案 1 :(得分:0)
您可以使用列表推导,但是您想要avoid making the sublists using the multiplication operator,例如:
[0] * 5 # will produce 'undesired' behavior (see the above link)
这样做的一种方法是以下
>>> x = [1, 3, 4]
>>> [[0 for _ in range(i)] for i in x]
[[0], [0, 0, 0], [0, 0, 0, 0]]