【发布时间】:2020-02-16 21:06:33
【问题描述】:
我在 Python 3 中有以下代码:
def matrix(n:int) -> list:
matrix = list([[None]*n]*n)
count = 1
for i in range(n):
for j in range(n):
print(i, j, count)
matrix[i][j] = count
count += 1
return matrix
number = 3
print(matrix(number))
下面是print 结果:
0 0 1
0 1 2
0 2 3
1 0 4
1 1 5
1 2 6
2 0 7
2 1 8
2 2 9
[[7, 8, 9], [7, 8, 9], [7, 8, 9]]
如您所见,索引是正确的,但它没有返回[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 的预期值。这种行为肯定是有根本原因的,当然,通过使用其他方法,例如append(),结果是正确的。
【问题讨论】:
-
matrix = [[None]*n for i in range(n)]这为您提供了单独的 3 个列表,它们共同构成了主列表。 -
嗨,我添加了回答的单行函数,检查我的更新:)
标签: python arrays python-3.x list matrix