之前在依次使用多维数组时,使用了*创建多维数组,[[]*m]*n,结果发现修改一个元素,剩余的元素也会相应地修改,经查询得知,这种方式创建的元素是浅复制,即它们引用的是同一个地址。解决办法如下:
1.直接创建
list_a = [[0, 0, 0],[0, 0, 0],[0, 0, 0]]
2.使用列表推导式
list_b = [[0 for i in range(m)] for j in range(n)]
3.使用numpy
使用*创建多维数组[[]*m]*n时会出现浅复制问题,修改一个元素其余元素也会改变,因为它们引用同一地址。解决办法有直接创建、使用列表推导式和使用numpy。
之前在依次使用多维数组时,使用了*创建多维数组,[[]*m]*n,结果发现修改一个元素,剩余的元素也会相应地修改,经查询得知,这种方式创建的元素是浅复制,即它们引用的是同一个地址。解决办法如下:
1.直接创建
list_a = [[0, 0, 0],[0, 0, 0],[0, 0, 0]]
2.使用列表推导式
list_b = [[0 for i in range(m)] for j in range(n)]
3.使用numpy

被折叠的 条评论
为什么被折叠?