Python 如何在没有numpy的情况下使用范围填充矩阵?
我用列表创建了一个由零组成的矩阵,我想根据矩阵的大小来填充它,但我希望数字是按顺序来的 我尝试了以下方法Python 如何在没有numpy的情况下使用范围填充矩阵?,python,python-3.x,Python,Python 3.x,我用列表创建了一个由零组成的矩阵,我想根据矩阵的大小来填充它,但我希望数字是按顺序来的 我尝试了以下方法 matrix = [] for i in range(3): a =[] for j in range(3): a.append(i+j) matrix.append(a) 我明白了: [[0, 1, 2], [1, 2, 3], [2, 3, 4]] 但预期的结果是: [[0, 1, 2], [3, 4, 5], [6, 7, 8]] 谢谢,
matrix = []
for i in range(3):
a =[]
for j in range(3):
a.append(i+j)
matrix.append(a)
我明白了:
[[0, 1, 2], [1, 2, 3], [2, 3, 4]]
但预期的结果是:
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
谢谢,让您的外部
范围
循环包含一个步骤,以提供每个级别的基本值。在这种情况下,只需更改:
for i in range(3):
致:
用命名变量(如dim
(表示“维度”)来表达它可能更具可读性:
根据@ShadowRanger的答案进行标记,而不是附加,如果您愿意,您可以使用列表理解
dim = 3
matrix = [list(range(i, i+dim)) for i in range(0, dim**2, dim)]
你可以把i乘以3,就像这样:
matrix=[]
对于范围(3)中的i:
a=[]
对于范围(3)内的j:
a、 在第二行追加(3*i+j),i==1
和j==0
,还有什么i+j
?有时我们需要测试几个迭代以确保代码是正确的。
dim = 3
for i in range(0, dim ** 2, dim):
a = []
for j in range(dim):
a.append(i+j)
matrix.append(a)
dim = 3
matrix = [list(range(i, i+dim)) for i in range(0, dim**2, dim)]