什么是列表浅拷贝:浅拷贝就是说,只复制第一层列表,如果有列表嵌套或多层列表,仍然是采取的指向内存地址,并不是拷贝的,第一层是拷贝的,第二层,三层是指向的。
比如:
list = ['hello','hi','ok',[100,200,300],'python','world']
这是个列表,而且是个列表嵌套,列表里面还有个列表,浅拷贝只能拷贝第一层列表,带数字的列表是属于第二层列表,如果原始数据修改第二层的数字列表,拷贝的列表第二次数字列表也会被改变。
什么是列表的深拷贝:深拷贝就是接着上面的浅拷贝,解决浅拷贝不能实现拷贝多层次的问题,深拷贝可把第一层和多层的列表一起拷贝出来,放在独立的内存空间,和原始列表再无关系。
list = ['hello','hi','ok',[100,200,300],'python','world']
深拷贝:会把第二层的数字列表一起拷贝,就算原始数据改变了第二层的数字列表,深拷贝的列表也不会跟着原始列表改变。
用法:
浅拷贝可以使用内置函数:xxx.copy()拷贝,可也可使用copy模块:copy.copy(xxx)
深拷贝只能使用copy模块:copy.deepcopy(xxx)。