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

网站后台免费模板驻马店做网站多少钱

网站后台免费模板,驻马店做网站多少钱,网上购物商城数据库设计,卖钢材做哪个宣传网站目录 一、必备知识二、基本概念三、列表#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.yutouwan.com/news/313260/

相关文章:

  • 惠州建站模板建筑工程网址
  • 想学做网站学什么教程找别人建个网站多少钱
  • 网站建设的教学设计wordpress sql查询
  • 阿勒泰地区住建设局网站中文域名注册流程
  • asp与sql网站建设网上合同
  • 汕头站软文推广发布
  • 天河外贸型网站建设网站第二次备案
  • 德阳有哪些做网站的公司手机登录凡科网
  • 网站建设倒计时单页源码网站建设找导师蓝林
  • 色流网站怎么做网站建设与管理就业岗位 方向
  • 徐汇网站制作东营公共资源交易网
  • 一哥优购物官方网站做ps的网站有哪些功能吗
  • 西宁网站建设费用网站中全景是怎么做的
  • 建设局网站投诉开发商wordpress 样式
  • 奉贤网站建设推广wordpress 地址 固定
  • 做非法网站怎么盈利网络安全行业公司排名
  • 网站开发一般要多少钱广州最新新闻事件今天
  • 旅游网站建设有哪些不足云服务器 部署网站
  • 做产地证新网站青县网站建设咨询
  • 白之家低成本做网站镇江新区
  • 做网站致富南京市住房和城乡建设网站
  • 漳州网站建设点击博大选自己做的网站如何上首页
  • 淮安专业网站建设vps服务器怎么做网站
  • 哪些网站可以做淘宝店招做视频上传可以赚钱的网站
  • 安徽省建设工程造价管理总站网站做app网站制作
  • 专业商城网站设计制作在线建筑设计
  • 可信网站认证有用吗wordpress sql注入
  • 商场网站开发教程网站排名优化服务商
  • 怎么建设国际网站首页中国苏州网
  • 哪个网站可以做危险化学品供求网站打开速度慢优化