当前位置: 首页 > news >正文

dede一键更新网站旧货交易网站开发的背景

dede一键更新网站,旧货交易网站开发的背景,wordpress特殊图片,免费做金融网站目录 一、必备知识二、基本概念三、列表#xff0c;元组#xff0c;集合#xff0c;字符串#xff0c;字典浅拷贝3.1 列表3.2 元组3.3 集合3.4 字符串3.5 字典3.6 特别注意可视化展示浅拷贝总结 四、列表#xff0c;元组#xff0c;集合#xff0c;字符串#xff0c;字… 目录 一、必备知识二、基本概念三、列表元组集合字符串字典浅拷贝3.1 列表3.2 元组3.3 集合3.4 字符串3.5 字典3.6 特别注意可视化展示浅拷贝总结 四、列表元组集合字符串字典深拷贝可视化展示结论 一、必备知识 万物皆对象在学习python的深浅拷贝之前我们必须要知道一个事情就是python对象的引用在python里面万物皆对象万物皆对象万物皆对象不管什么数据类型都是对象。我们定义一个变量并给这个变量赋值的时候赋的并不是这个对象值而是这个对象引用并不是一直值如a 1这个时候并不是把1这个值赋给了a而是把1这个对象的引用赋值给了a。可变序列和不可变序列可变序列就是可以直接对这个序列直接在原地址上进行数据修改如果是不可变序列进行数据修改则会创建一个新的对象让我这个变量重新指向新的对象。关于这部分不不懂的小伙伴可以参考下这篇博文Python的可变类型与不可变类型如果看完还是有不明白的地方可以评论区留言。 二、基本概念 浅拷贝浅拷贝会创建一个新的对象但这个新对象的内可能是院对象的引用或者复制(视具体数据类型而言)。具体来说如果原对象的元素是可变的比如列表字典集合浅拷贝会复制这些元素的引用而不是元素本身。这意味着新对象和原对象会共享这些可变元素。如果对这些共享的元素进行修改会影响到原对象。如果原对象的元素是不可变的比如元组或字符串浅拷贝则会复制这些元素的值因为它们是不可变的不会影响到原对象。浅拷贝通常有三种方式自身构造器切片和copy.copy()函数不同数据类型列表元组字典集合 字符串的浅拷贝会有差异下面会逐一介绍。 深拷贝重新分配一块新的内存创建一个新的对象并将原对象中的元素以递归的方式通过创建新的子对象拷贝到新的对象中。新的对象和原对象之间没有任何关系。深拷贝使用copy.deepcopy()函数实现 python自带数据类型 列表元组字典集合字符串 必备工具网站pythontutor 三、列表元组集合字符串字典浅拷贝 3.1 列表 自身构造器 list1 [1,2,3,4]list2 list(list1)list2 [1, 2, 3, 4]id(list1) 140495553055488id(list2) 140495553080256list1list2 True切片 list1 [1,2,3,4]list2 list1[:]list2 [1, 2, 3, 4]list1 is list2 Falselist1 list2 Truecopy()函数 import copylist1 [1,2,3,4]list2 copy.copy(list1)list1 [1, 2, 3, 4]list2 [1, 2, 3, 4]list1 is list2 Falselist1 list2 True注python中的可变序列有自己的copy()方法即对于列表和字典这种的对象可以使用list.copy()或者dict.copy()跟copy.copy()函数是等价的。 总结python列表可以使用三种方式进行浅拷贝自身构造器切片copy()函数。浅拷贝之后两个变量的地址不一样但是数值是一样的 3.2 元组 自身构造器 a (1,2,3,4)b tuple(a)a (1, 2, 3, 4)b (1, 2, 3, 4)a is b Truea b True切片 a (1,2,3,4)b a[:]a is b Truea b Truea (1, 2, 3, 4)b (1, 2, 3, 4)copy函数 import copya (1,2,3,4)b copy.copy(a)a (1, 2, 3, 4)b (1, 2, 3, 4)a is b Truea b True3.3 集合 自身构造器 a {1,2,3,4}b set(a)a {1, 2, 3, 4}b {1, 2, 3, 4}a is b Falsea b Truecopy函数() import copya {1,2,3,4}b copy.copy(a)a {1, 2, 3, 4}b {1, 2, 3, 4}a is b Falsea b True3.4 字符串 自身构造器 a 1234b str(a)a 1234b 1234a is b Truea b True切片 a 1234b a[:]a 1234b 1234a is b Truea b Truecopy() import copya 1234b copy.copy(a)a 1234b 1234a is b Truea b True3.5 字典 自身构造器 dict1 {a:1, 1:2}dict2 dict(dict1)dict1 {a: 1, 1: 2}dict2 {a: 1, 1: 2}dict1 is dict2 Falsedict1 dict2 Truecopy函数 import copydict1 {a:1, 1:2}dict2 copy.copy(dict1)dict1 {a: 1, 1: 2}dict2 {a: 1, 1: 2}dict1 is dict2 Falsedict1 dict2 True3.6 特别注意 list1 [[1, 2], (30, 40)]list2 list(list1)list1.append(100)list1 [[1, 2], (30, 40), 100]list2 [[1, 2], (30, 40)]list1[0].append(3)list1 [[1, 2, 3], (30, 40), 100]list2 [[1, 2, 3], (30, 40)]list1[1] (50,60)list1 [[1, 2, 3], (30, 40, 50, 60), 100]list2 [[1, 2, 3], (30, 40)]如果是可变类型浅拷贝之后一个变量改变不会影响到另一个但是如果是不可变类型一个改变了会影响到另一个同时改变。 可视化展示 可变类型 list1 [1,2,[3,4,[5,6]]] list2 list(list1)dict1 {a:111, b:{c:222, d:{e:333}}} dict2 dict(dict1)set1 {1,2,3,4} set2 set(set1)内存指向 可变和不可变 list1 [1,2,[3,4, [5,6]]] list2 list1 list3 list(list1) print(id(list1)) print(id(list2)) print(id(list3))tuple1 (1,2,(3,4,(5,6))) tuple2 tuple(tuple1) tuple3 tuple1 (7,8) tuple4 tuple1 tuple5 tuple1[1:3] print(id(tuple1)) print(id(tuple2)) print(id(tuple3))str1 123456 str2 str1[1:5] str3 str1 str4 str1[:] print(id(str1)) print(id(str2)) print(id(str3)) print(id(str4))a 135346347458484 b int(a) b 123输出 140007835258880 140007835258880 140007835581440 140007674106368 140007674106368 140007674089280 140007835585072 140007660015344 140007835585072 140007835585072内存指向 浅拷贝总结 可变数据类型的浅拷贝就是为新的变量重新分配一块内存空间和原来变量的内存不一样但是变量的值是一样的不可变数据类型不会发生浅拷贝只是开辟了内存存储原对象的引用而不是存储原对象的子对象的引用。要与赋值操作区分赋值只是把原对象的引用赋值给了新的变量相当于这两个变量指向同一个对象浅拷贝只改改变最外面一层的元素不会影响到原始数据(也就是最外层的数据是复制)改变内层元素则会影响原始数据(内层数据是引用)。可变类型会重新开辟一段内存最外层元素互不影响内层元素会指向原始的数据。不可变类型的数据发生完全浅拷贝这里为了方便介绍理解成浅拷贝实际上不可变类型不是浅拷贝数据全部复制时新的变量和原始的变量的地址是一模一样的如果是发生部分数据的复制或者增加数据的时候则会新开辟一段空间。我们重点关注可变类型因为不可变类型即使发生了浅拷贝或者赋值对我们后续使用没有任何影响因为不可变类型数据不能被修改一旦修改就重新开辟了一个新的内存来存储。 四、列表元组集合字符串字典深拷贝 可视化展示 代码 import copy list1 [1,2,[3,4, [5,6]]] list2 copy.deepcopy(list1) print(id(list1)) print(id(list2))tuple1 (1,2,(3,4,(5,6))) tuple2 copy.deepcopy(tuple1) print(id(tuple1)) print(id(tuple2))tuple3 (1,2,[3,4], {a:1}) tuple4 tuple(tuple3) tuple4[2].append(5) tuple4[3][a] 2输出 140347510384064 140347510378496 140347334201984 140347334201984可视化 结论 可变类型深拷贝之后新旧变量地址不一样不可变类型不变 元组类型比较特殊 元组内部如果嵌套了 可变类型list, dict浅拷贝之后 内部的值修改 会影响拷贝之后的结果 补充函数传参的时候不可变类型是值传递可变类型是传引用
http://www.zqtcl.cn/news/515720/

相关文章:

  • 学生做网站的工作室网站建设项目表
  • .net网站开发教程百度贴吧微网站设计基本要求
  • 无锡网站建设哪家公司好咨询网站建设
  • 优秀的企业网站设计wordpress登陆后台总是跳转首页
  • 国外html5特效网站宁波江北区建设局网站
  • 购物网站哪个是正品商城网站模板下载
  • 网站名称 规则技术支持 石家庄网站建设
  • 专门做私人定制旅游的网站专做韩餐网站
  • 网站 续费wordpress首页调用指定分类
  • 2008系统怎么做网站免费设计软件下载
  • 做电音的软件的专业下载网站宁波俄语网站建设
  • 北?? 网站建设旅游手机网站开发
  • 乐清做网站的网站备案容易通过吗
  • 网站qq登录 开发一个小型网站开发成本
  • 湖北网络建设公司网站js跳转到别的网站
  • 郑州网站app开发的汽车网站 源码
  • 河南网站建设企业做网站多少钱西宁君博示范
  • 沈阳有做网站的吗青浦手机网站制作
  • 腾讯云免费建站建立一个网站英语
  • 沙漠风网站建设怎么样官方网站建设银行2010年存款利息
  • 360报危险网站微信代码小程序
  • 网站维护报价单国外 做励志视频的网站
  • 用源码做自己的网站公司网站建设哪家公司好
  • 网站运营做seohtml前端网站开发PPT
  • 上海网站定制设计图wordpress网站在线安装
  • 互动网站的核心技术wordpress不用插件
  • 厦门市建设工程交易中心网站怎么自己做游戏软件的app
  • 网站论文参考文献人力资源公司名称大全简单大气
  • 射阳做企业网站哪家好wordpress 进销存
  • 青海个人旅游网站建设wordpress用户名密码加密方式