python中[:]的含义(深拷贝与浅拷贝)
python里传对象引用相当于传地址
id()函数返回的是对象指向的内存地址
a=test表明是浅拷贝,a和test指向的还是同一片内存地址
b = test[:]则是深拷贝,相当于复制了一片内存地址,重新用变量b来指向这块新的内存地址
浅拷贝会发生的一个问题就是
通过a修改了值的化,test也会变。可以用copy.copy或copy.deepcopy。
两者效率不一样,后者是用递归实现的,速度比copy.copy慢
python里传对象引用相当于传地址
id()函数返回的是对象指向的内存地址
a=test表明是浅拷贝,a和test指向的还是同一片内存地址
b = test[:]则是深拷贝,相当于复制了一片内存地址,重新用变量b来指向这块新的内存地址
浅拷贝会发生的一个问题就是
通过a修改了值的化,test也会变。可以用copy.copy或copy.deepcopy。
两者效率不一样,后者是用递归实现的,速度比copy.copy慢