用于构造矩阵的标准python库

用于构造矩阵的标准python库,python,matrix,Python,Matrix,在Python中,不使用numpy构建基数为1000(行)x10(列)的零矩阵的最简单方法是什么?(只是标准库) 另外,假设我得到一个包含10个元素的值列表。假设a=[1 2 3…10],我想用这个列表a覆盖零矩阵的第一行。我该怎么做呢 非常感谢 PS:我之所以想使用普通python列表而不是numpy来构造矩阵,是因为此赋值的要求,它不允许除python标准库之外的任何外部库。您可以: m = [[0 for _ in range(10)] for _ in range(1000)] m[0]

在Python中,不使用numpy构建基数为1000(行)x10(列)的零矩阵的最简单方法是什么?(只是标准库)

另外,假设我得到一个包含10个元素的值列表。假设
a=[1 2 3…10]
,我想用这个列表
a
覆盖零矩阵的第一行。我该怎么做呢

非常感谢

PS:
我之所以想使用普通python列表而不是numpy来构造矩阵,是因为此赋值的要求,它不允许除python标准库之外的任何外部库。

您可以:

m = [[0 for _ in range(10)] for _ in range(1000)]
m[0] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
请注意,如果您使用:

>>> matrix = 3*[3*[0]]
>>> matrix 
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
更改一个元素后:

>>> matrix[0][0] = 1
>>> matrix
[[1, 0, 0], [1, 0, 0], [1, 0, 0]]

整个栏目都会改变。因此,只有在不需要元素能够独立更改的情况下,才应该使用此方法。

谢谢@elyase。这是一个非常透彻的解释:)您可能已经意识到了这一点,但对于这个问题的未来读者,您可能不知道:如果要执行许多矩阵操作,您需要有一个很好的理由在
numpy
数组上使用纯python列表,因为内置列表非常慢,空间效率很低,谢谢@jme,我会在问题中澄清的。这是为了一个禁止我使用其他非标准库的编码任务。我认为numpy在大多数情况下都是一个更好的选择。@jme有时课程或其他要求可能要求不使用第三方库。例如(我之所以在这里),是因为edX上的AI课程说,你不能使用任何第三方库(即numpy)来实现滑动谜题解算器。你可以想象没有numpy这是多么困难!