Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过指定行的长度创建二维锯齿列表_Python - Fatal编程技术网

Python 通过指定行的长度创建二维锯齿列表

Python 通过指定行的长度创建二维锯齿列表,python,Python,我有一个整数列表x,我想创建一个由零组成的二维锯齿列表y,这样y的行I的长度由x的元素I确定 例如: x = [1, 3, 4] 然后: 我怎样才能做到这一点?试试这一行: x = [1, 3, 4] y = [[0]*s for s in x] 现在y将包含预期值: y => [[0], [0, 0, 0], [0, 0, 0, 0]] 您可以使用列表理解,但您希望,例如: 一种方法是如下 >>> x = [1, 3, 4] >>> [[0 fo

我有一个整数列表
x
,我想创建一个由零组成的二维锯齿列表
y
,这样
y
的行
I
的长度由
x
的元素
I
确定

例如:

x = [1, 3, 4]
然后:

我怎样才能做到这一点?

试试这一行:

x = [1, 3, 4]
y = [[0]*s for s in x]
现在
y
将包含预期值:

y
=> [[0], [0, 0, 0], [0, 0, 0, 0]]

您可以使用列表理解,但您希望,例如:

一种方法是如下

>>> x = [1, 3, 4]
>>> [[0 for _ in range(i)] for i in x]
[[0], [0, 0, 0], [0, 0, 0, 0]]

只有当我们重用相同的子列表(例如:
[[0,0]]]*2
)时,使用
*
运算符才是一个问题,如果我们为每一行创建不同的子列表(如我的答案所示),您描述的问题就不会发生
[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]]