python - 创建二维list时是否浅拷贝

在修改二维list 时遇到了——

- list的浅拷贝问题

即二维列表里面保存的是一维列表的地址,修改任意一行的元素,其他行中的元素也会被改变

>>>lists
# [[3, 0, 22, 21, 111], [3, 0, 22, 21, 111], [3, 0, 22, 21, 111]]
>>>lists[1][1]=11
>>>lists
# [[3, 11, 22, 21, 111], [3, 11, 22, 21, 111], [3, 11, 22, 21, 111]]

这是由于给list 赋值时使用了

lists=[[]]*3

正确的方式为

l=[[3]*3 for i in range(3)]

posted on 2019-05-28 00:19  Gilliana  阅读(126)  评论(0编辑  收藏  举报

导航