博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
拷贝、浅拷贝、深拷贝解答
阅读量:4499 次
发布时间:2019-06-08

本文共 1108 字,大约阅读时间需要 3 分钟。

拷贝

拷贝/浅拷贝/深拷贝都是针对可变类型数据而言的

list1 = ["a","b","c","d","f",["e","f","g"]]list2 = list1list1[2] = "plf"list1[5][0] = "lt"print(list1)print(list2)'''['a', 'b', 'plf', 'd', 'f', ['lt', 'f', 'g']]['a', 'b', 'plf', 'd', 'f', ['lt', 'f', 'g']]''''''    总结:  如果list2是 list1的拷贝,那么list1和list2公用一块内存空间,因此list1改变,list2也会随着改变!        '''

o_%E6%8B%B7%E8%B4%9D%E4%B9%8B%E6%99%AE%E9%80%9A%E6%8B%B7%E8%B4%9D.png


浅拷贝

import copylist1 = ["a","b","c","d","f",["e","f","g"]]list2 = copy.copy(list1)list1[2] = "plf"list1[5][0] = "lt"list1[5].append("xyz")print(list1)print(list2)'''['a', 'b', 'plf', 'd', 'f', ['lt', 'f', 'g', 'xyz']]['a', 'b', 'c', 'd', 'f', ['lt', 'f', 'g', 'xyz']]''''''    总结:         1.  如果 list2 是 list1 的浅拷贝对象,则1内的不可变元素发生了改变,list2 不变;          2.  如果 list1 内的可变元素发生了改变,则 list2 会跟着改变.'''

o_%E6%8B%B7%E8%B4%9D%E4%B9%8B%E6%B5%85%E6%8B%B7%E8%B4%9D.png


深拷贝

import copylist1 = ["a","b","c","d","f",["e","f","g"]]list2 = copy.deepcopy(list1)list1[2] = "plf"list1[5][0] = "lt"list1[5].append("xyz")print(list1)print(list2)'''['a', 'b', 'plf', 'd', 'f', ['lt', 'f', 'g', 'xyz']]['a', 'b', 'c', 'd', 'f', ['e', 'f', 'g']]''''''    总结:        如果list2 是 list1 的深拷贝,那么list1 和list2 都是独立的个体,不存在任何关系'''

o_%E6%8B%B7%E8%B4%9D%E4%B9%8B%E6%B7%B1%E6%8B%B7%E8%B4%9D.png

转载于:https://www.cnblogs.com/plf-Jack/p/10920216.html

你可能感兴趣的文章
Webpack4 splitChunks配置,代码分离逻辑
查看>>
Trie树详解及其应用
查看>>
第三组 通信一班 030 OSPFv2、OSPFv3综合实验
查看>>
java IO流文件的读写具体实例(转载)
查看>>
vue随笔
查看>>
一些汇编指令
查看>>
面向对象
查看>>
CallBack Function Python
查看>>
读书笔记-代码大全
查看>>
CentOS7为docker-ce配置阿里云镜像加速器
查看>>
groovy基本语法--JSON
查看>>
学习笔记2 Haspmap简述
查看>>
【AngularJs】 <br>换行显示成字符串
查看>>
Angular2 父子组件通信方式
查看>>
window.location.href问题,点击,跳转到首页
查看>>
判断一个 int 向量里是否有相同的数(1)
查看>>
数据库设置
查看>>
Python基础知识之3——运算符与表达式
查看>>
串口通信类,WPF
查看>>
UIView下使用Animation控制动画
查看>>