搜索
您的当前位置:首页正文

Python中“=”和深浅拷贝区别

来源:二三娱乐

= 赋值:内存中只存在一个

a1指向了内存,a1相当于对内存中该对象的引用。
直接把该引用赋值对b1,相当于b1直接指向内存对象

a1 = [1, 2, 3, ["a", "b"]]
b1 = a1

拷贝 : 内存中存在两个

浅拷贝

浅拷贝只拷贝原本各元素在内存中的地址:

  • 当子元素为可变对象时,如列表。则原副本皆可修改
  • 当子元素为不可变对象时,如字符串。则原副本的修改皆会让其放弃原来指向的内存地址,指向其他


    浅拷贝只拷贝内存的地址

深拷贝

深拷贝对于不可变元素,和浅拷贝相同,拷贝引用
对于可变元素,深拷贝和复制一份,原副本对可变元素的修改皆不会影响另外一个


深拷贝
Top