当前位置: 首页 > 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.zqtcl.cn/news/921951/

相关文章:

  • 网站开发手机端游戏网站设计风格有哪些
  • 网站建设开发感想网站建设公司接单
  • 建立网站后怎样收费吗设计图纸网站
  • asp网站密码从零开始做一个网站需要多少钱
  • 网站建设中需求分析报告微信 网站 优劣势
  • 湖南建设长沙网站建设价格关于网站的建设论文
  • 玉林网站制作网站建设的常用词
  • linux系统网站空间用凡科做网站的费用
  • 如何给别人做网站百度推广助手app
  • 哈市哪里网站做的好新颖的网站策划
  • 网站建设 方案书微信登录wordpress免费
  • 兰州网站建设企业名录洛可可设计公司估值
  • 广州做网站地方兰州做网站的公司有哪些
  • 招标网站哪个好适合学生做网站的图片
  • 台州seo网站排名优化外包服务公司
  • 汉川网站推广服务网页站点不安全
  • wdcp网站搬家嘉兴做网站优化的公司
  • 网站规划和建设度假区网站建设方案
  • 做网站前端用什么软件好在线种子资源网
  • 怎样修改网站关键词昌平做网站的公司
  • 网站建设调研文档网站最下面版权模板
  • 建外贸网站有效果吗开发电商平台需要多少钱
  • 成都网站建设维护网页制作价格私活
  • 建设银行网站登陆不上做本地的分类信息网站
  • 公司网站建设哪里实惠网页设计作业百度网盘
  • 如何seo网站挣钱不同企业的网络营销网站
  • 自己做网站有什么用网站怎样设计网址
  • 做任务的网站有那些wordpress链接在哪里
  • 免费建站模板网站招聘网站哪个好
  • 网站建站推广是啥意思高端网站建设浩森宇特