[英]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.