初始化多维列表Python参考问题

初始化多维列表Python参考问题,python,list,Python,List,如果我创建一个二维矩阵,如下所示: n = 5 m = 5 l = [[0] * n] * m l[0][0] = 1 print(l) 将输出: [[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0]] 为什么??为什么所有子列表中的第一个元素都被设置为1??l=[[0]*n表示范围(m)]

如果我创建一个二维矩阵,如下所示:

n = 5
m = 5
l = [[0] * n] * m
l[0][0] = 1
print(l)
将输出:

[[1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0]]

为什么??为什么所有子列表中的第一个元素都被设置为1??

l=[[0]*n表示范围(m)]