簡體   English   中英

如何使用沒有numpy的范圍填充矩陣?

[英]how to fill matrix using range without numpy?

我使用列表創建了一個零矩陣,我想根據矩陣大小填充它,但我希望數字按順序出現。

我嘗試了以下

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

謝謝

讓你的外部range循環有一個步驟來為每個級別提供基礎值。 在這種情況下,只需更改:

for i in range(3):

到:

for i in range(0, 9, 3):

用像dim這樣的命名變量來表達它可能更易讀(對於“維度”):

dim = 3
for i in range(0, dim ** 2, dim):
    a = []
    for j in range(dim):
        a.append(i+j)
    matrix.append(a) 

標記@ShadowRanger 的答案,而不是附加,如果您願意,可以使用列表理解。

dim = 3
matrix = [list(range(i, i+dim)) for i in range(0, dim**2, dim)]

你可以像這樣將 i 乘以 3:

matrix = []
for i in range(3):
    a =[]
    for j in range(3):
        a.append(3*i + j)     <-----
    matrix.append(a) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM