【Python基础篇-深浅拷贝、小数据池、集合】教程文章相关的互联网学习教程文章

python深浅拷贝【代码】【图】

一、概念引入 在高级语言中,变量是对内存及其地址的抽象。 对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的只本身。 引用语义:在python中,变量保存的是对象(值)的引用,我们称为引用语义。采用这种方式,变量所需的存储空间大小一致,因为变量只是保存了一个引用。也被称为对象语义和指针语义。 值语义:有些语言采用的不是这...

python开发之路之深浅拷贝【图】

深浅拷贝特别说明:1. 浅拷贝只拷贝一层,后面就是共享了。2. 例如[ [1,2,3] ,4,5,6 ],在这个嵌套列表中,小列表[1,2,3]就是一块共享的内存空间,它不是存储地址,所以你浅拷贝过来的数据对小列表即共享内存空间进行了数据修改,那么,之前的源数据也会被修改。因为修改了共 享内存空间的数据, 就相当于修改了源数据在内存中的指针方向。 3.深拷贝相当于克隆一份。浅拷贝实例一:a = [1,‘alex‘,‘alvi...

Python基础篇-深浅拷贝、小数据池、集合

深浅拷贝赋值:将多个变量名指向一个同一个内存地址,有一个操作内存地址的值进行改变,其余的变量名在查看的时候都进行更改浅拷贝:只拷贝第一层元素的地址,只有修改拷贝的数据第一层的时候源数据不受影响给可变数据类型(第二层元素)进行添加的时候源数据会受影响= 是修改 append 是添加可变数据类型能够修改和添加,不可变数据类型只能修改深拷贝:不可变数据类型内存地址共用,可变数据类型新开辟一个空间 不管嵌套多深,不管...

Python 的深浅拷贝 终于明白了【代码】

python 深浅拷贝不之前一直不太理解,只是概念性的理解像 1,2 所说,敲完下面代码希望你可以理解。1、copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。2. copy.deepcopy 深拷贝 拷贝对象及其子对象>>> import copy >>> l1 = [1,3,5,[‘a‘,‘b‘,‘c‘]] >>> a = l1 >>> b = copy.copy(a) # 浅拷贝 >>> c = copy.deepcopy(a) # 深拷贝 >>> l1.append(7) >>> l1[3].append(‘d‘) >>> print ‘l1=‘,l1 l1= [1, 3, 5, ...

python深浅拷贝,集合以及数据类型的补充【代码】

1.基础数据类型的补充1.元组如果元组中只有一个数据,且没有逗号,则该‘元组’与里面的数据的类型相同。如:1 tu = (1) 2 tu1 = (1,) 3 tu2 = (‘alex‘) 4 tu3 = ([1,2,3],) 5print(tu,type(tu)) # 1 <class ‘int‘>6print(tu1,type(tu1)) # (1,) <class ‘tuple‘>7print(tu2,type(tu2)) # alex <class ‘str‘>8print(tu3,type(tu3)) # ([1, 2, 3],) <class ‘tuple‘>2. 列表列表与列表是可以相加的,如:1 l1 = [1,2,...

python之set集合、深浅拷贝【代码】

一、基本数据类型补充1,关于int和str在之前的学习中已经介绍了80%以上了,现在再补充一个字符串的基本操作: li = [‘李嘉诚‘,‘何炅‘,‘海峰‘,‘刘嘉玲‘]s = "_".join(li)print(s) # 结果为:李嘉诚_何炅_海峰_刘嘉玲li = ‘黄花大闺女‘s = "_".join(li)print(s) # 结果为:黄_花_大_闺_女2,列表相关:  循环删除列表中的每一个元素,有如下代码,注意结果并分析原因: li = [11,22,33,44]for e in li:li.remove(e)...

Python入门-深浅拷贝【代码】

首先我们在这里先补充一下基础数据类型的一些知识:一.循环删除  1.前面我们学了列表,字典和集合的一些操作方法:增删改查,现在我们来看一下这个问题:有这样一个列表: lst = [‘周杰伦‘,‘周润发‘,‘周星驰‘,‘刘德华‘]如果现在要求我们删除带‘周‘的元素,我们下意识会这样做:lst = [‘周杰伦‘,‘周润发‘,‘周星驰‘,‘刘德华‘] for i in lst:if ‘周‘ in i:lst.remove(i) print(lst) #[‘周润发‘, ‘刘德华‘]但是结果...

Python-深浅拷贝【代码】

一、浅拷贝常见的浅拷贝的方法,是使用数据类型本身的构造器,比如下面两个例子:list1 = [1, 2, 3] list2 = list(list1) print(list2) print("list1==list2 ?",list1==list2) print("list1 is list2 ?",list1 is list2)set1= set([1, 2, 3]) set2 = set(set1) print(set2) print("set1==set2 ?",set1==set2) print("set1 is set2 ?",set1 is set2) 运行结果为:[1, 2, 3] list1==list2 ? True list1 is list2 ? False {1, 2, 3} s...

python-之-深浅拷贝二(元组)【代码】

元组比较特殊 1、----元组本身为不可变类型import copyv1 = (1, 2, 3, 4) v2 = copy.copy(v1) print(id(v1), id(v2)) v3 = copy.deepcopy(v1) print(id(v1), id(v3))输出: 31450280 31450280 31450280 31450280小结:元组本身是不可变类型,就像str、int、boor一样,所在在深浅拷贝时,它们的内存地址是一样的。2、----当元组中嵌套可变类型时:v1 = (1, 2, 3, [1, 2, 3], 4) import copyv2 = copy.copy(v1) print(id(v1), id(v2)...

Python 第六天 深浅拷贝

1. 基本数据类型补充  s=" ".join(lst) 把列表中的每一项用" "拼接起来,把列表转化成字符串  lst1=s1.split() 用()中的内容切割列表,把字符串转化成列表2. 关于删除  在循环迭代的过程中不能删除  删除的方法:    创建新列表,把想要删除的内容放在列表中,循环新列表,删除原列表  字典在循环中不能增加和删除,可以修改  dict.fromkeys(k, v)   把key迭代.和value组合成k:v创建新字典, 所有的key共享同一个...

从底层剖析Python深浅拷贝【代码】【图】

拷贝的用途拷贝就是copy,目的在于复制出一份一模一样的数据。使用相同的算法对于产生的数据有多种截然不同的用途时就可以使用copy技术,将copy出的各种副本去做各种不同的操作。值得一提的是绝大部分编程语言中对于copy都有深浅拷贝的概念,所以充分的理解本章节的知识也是在为今后学习其他编程语言少走弯路。在Python中,除开手动deepcopy(),其他的任何操作都是浅拷贝。Python = 赋值示例好了,废话不多说。直接进入主题,上代码...

Python开发【第二章】:Python深浅拷贝剖析

Python深浅拷贝剖析Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果。下面本文就通过简单的例子介绍一下这些概念之间的差别。一、对象赋值创建列表变量Alex,变量包含子列表,通过变量Alex给变量lzl赋值,对原文:http://www.cnblogs.com/lianzhilei/p/5725172.html

python之深浅拷贝【代码】【图】

list1 = ['egon', 'lxx', [1,2]] list2 = list1 #这不叫copy 二者分隔不开,list改list2也跟着改,因为指向的就是同一个地址拷贝:拷贝指的是拷贝原列表产生新的列表(id 是不同的)浅拷贝:list1 = ['egon', 'lxx', [1,2]] list3 = list.copy() #浅拷贝什么是浅拷贝:? 是把原列表第一层的内存地址不加区分完全 copy 一份给新列表list1=['egon','lxx',[1, 2] ] list3 = list1.copy() print(list3) #['egon', 'lxx', [1, 2]] print...

python——赋值与深浅拷贝【代码】【图】

转载自 Eva_J ,感谢分享https://www.cnblogs.com/Eva-J/p/5534037.html   初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~预备知识一——python的变量及其存储  在详细的了解python中赋值、copy和deepcopy之前,我们还是要花一点时间来了解一下python内存中变量的存储情况。  在高级语言中,变量是对内存及其地址的抽象。对于python而言,p...

Python中的深浅拷贝【图】

一、浅拷贝浅拷贝: 只是复制最外层的结构,除最外层其余的直接将其地址引用过来,原始数据和拷贝后数据修改会互相影响。1、定义数据a作为原始对象,b作为a的浅拷对象,可以看到b是重新开辟了一块内存地址。 2、修改外层结构修改原始对象a的外层结构,观察b的变化 可以看到a修改了外层结构,但是b并没有改变,所以说只是复制了最外层的结构。同理修改b也不会影响a: 3、修改内层子对象修改拷贝对象的内部的子对象[3,4] 发现修改...