python遇到的坑主要在copy上。
1.深度复制和复制
1.1复制
其实就是复制就是生成一个指向相同变量地址的变量。
1.2深度复制
这才是我们想要的,生成一个指向新地址的变量。(很多处理操作都是先深度复制,在处理的)
1.3问题
一般情况,我们都会发现这个问题。但是特殊情况可能会出错。
1.3.1正确的复制
快速生成列表,都是0。然后修改第一项为10。
b=[0]*10
b[0]=10
这中情况结果是[10, 0, 0, 0, 0, 0, 0, 0, 0, 0]。也就是说是深度复制。
1.3.2 错误的复制
快速生成列表,都是0。然后修改第一项为3。
c=[[0]*3]*5
c[0][0]=3
这时候结果是[[3, 0, 0], [3, 0, 0], [3, 0, 0], [3, 0, 0], [3, 0, 0]]。
看来列表的复制是浅复制