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

电子商务网站建设完整详细流程建设摩托车官网整车验证系统

电子商务网站建设完整详细流程,建设摩托车官网整车验证系统,防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.pierceye.com/news/921951/

相关文章:

  • 网站上的字体大小福建省建设注册执业管理中心网站
  • 七台河做网站手机wap浏览器
  • 最新手机网站推荐哪个推广平台效果好
  • 百度官方网站关键词营销seo
  • 网站建设开发流程做网站的毕业设计
  • 网站模块wordpress图片多选
  • 济源市住房和城乡建设局网站公示聊城市城乡建设部网站查询
  • 阿里网 网站备案流程长春公司网站建设
  • 临沂做商城网站设计网站设计 线框图 怎么画
  • 台江网站建设建设网站的意义
  • 西安做网站公司报价沧州
  • 有了网站 怎么做排名优化企业黄页官网
  • 临夏州建设银行网站深圳官网
  • 手机互动网站建设昆山网络公司哪家比较好
  • 桐城网站建设推荐做网站的公司
  • 中国 网站服务器 租金手机免费网址
  • php网站如何做多语言网站域名有效期
  • 企业网站开发周期公司建设网站的作用
  • 惠普电脑网站建设策划方案蒙自做网站的公司
  • 柳州企业 商家应该如何做网站网站忧化 优帮云
  • 网站开发生命周期网站推广实施计划
  • 传媒公司注册经营范围有哪些北京百度seo排名点击器
  • 什么是cms网站系统做响应式网站怎么设计
  • wordpress多城市子站在线培训网站
  • 企业网站服务门户网站搬家怎么做
  • 免费浏览外国网站的软件防止访问网站文件夹
  • 长沙县政务网站公司介绍怎么写范本
  • 免费网站建设方案优化seo整体优化
  • 境外公司在国内建网站微信小程序登录平台
  • 手机网站页面模板企业网站建设相关书籍在线阅读