我尝试使用具有固定数量元素的list列表创建矩阵。我为每个单元格使用0初始化矩阵,然后遍历所有元素,并在每个单元格中将每个行号和列号相乘。
test = [[0] * (10)] * 10
for i in range(10):
for j in range(10):
test[i][j] = i * j
当我打印test
时,结果是
[[0, 9, 18, 27, 36, 45, 54, 63, 72, 81], [0, 9, 18, 27, 36, 45, 54, 63, 72, 81], [0, 9, 18, 27, 36, 45,54, 63, 72, 81], [0, 9, 18, 27, 36, 45, 54, 63, 72, 81], [0, 9, 18, 27, 36, 45, 54, 63, 72, 81], [0, 9,18, 27, 36, 45, 54, 63, 72, 81], [0, 9, 18, 27, 36, 45, 54, 63, 72, 81], [0, 9, 18, 27, 36, 45, 54, 63,72, 81], [0, 9, 18, 27, 36, 45, 54, 63, 72, 81], [0, 9, 18, 27, 36, 45, 54, 63, 72, 81]]
看起来只有i
和最后一个i=9
被计算。我期望的是行和列乘法的结果。
如何在python中做到这一点?
答案 0 :(得分:0)
我不会首先实例化一个空列表,仅使用列表理解即可。
test = [[i * j for i in range(10)] for j in range(10)]
脾气暴躁:
size = np.arange(10)
test = size * size[:, None]
答案 1 :(得分:0)
您的程序列表中已被克隆10次,因此它将对矩阵进行最后修改。