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)]