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)]
-----