【python3系列文章(1):直接复制、浅拷贝和深度拷贝】教程文章相关的互联网学习教程文章

python基础--包、logging、hashlib、openpyxl、深浅拷贝【代码】【图】

包:它是一系列模块文件的结合体,表现形式就是一个文件夹,该文件夹内部通常会有一个__init__.py文件,包的本质还是一个模块。首次导入包:(在导入语句中中 . 号的左边肯定是一个包(文件夹))先产生一个执行文件的名称空间1、创建包下面的__init__.py文件中的名称空间2、执行包下面的__init__.py文件中的代码,将产生的名字放到包下面的__init___.py文件名称空间中3、在执行文件中拿到一个指向包下面的__init__.py文件名称空间...

python中常用模块总概括(二)以及深浅拷贝简述【代码】【图】

一,logging模块 也称为日志模块,就是记录。 分为五个等级:类似于火情警报,等级越高事态越严重。 debug日志,级别为10 info日志,级别为20 warning日志,级别为30 error日志,级别为40 critical日志,级别为50 四个对象: logger 对象:负责产生日志 filer 对象:过滤日志 handler对象:控制日志输出位置 format对象:控制日志规定的格式logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:fi...

Python-传递可变/不可变对象,浅拷贝、深拷贝

参数的传递 本质:从实参到形参的赋值操作。参数的传递都是“引用传递”,不是“值传递”。具体分为两类: 对“可变对象”(例如:字典、列表、集合、自定义的对象)进行“写操作”,直接作用于原对象本身 对“不可变对象”(例如:数字、字符串、元组、布尔值、function等)进行“写操作”,实际传递还是对象的引用,由于不可变对象无法修改,在赋值的时候,系统会创建一个新的对象。即:生成一个“对象空间...

Python中的深拷贝与浅拷贝【图】

首先以列表为例,来看python中的深拷贝与浅拷贝: 如下图,a和b的地址是一样的,b只是指向了a的地址。copy.copy后,d只是开辟了一段新的空间,拷贝了c的引用copy.deepcopy,是直接拷贝了内容。

Python列表赋值,复制,深拷贝以及5种浅拷贝详解【代码】

Python列表赋值,复制,深拷贝以及5种浅拷贝详解 概述 在列表复制这个问题,看似简单的复制却有着许多的学问,尤其是对新手来说,理所当然的事情却并不如意,比如列表的赋值、复制、浅拷贝、深拷贝等绕口的名词到底有什么区别和作用呢? 列表赋值 # 定义一个新列表 l1 = [1, 2, 3, 4, 5] # 对l2赋值 l2 = l1 print(l1) l2[0] = 100 print(l1) 示例结果: [1, 2, 3, 4, 5] [100, 2, 3, 4, 5] 可以看到,更改赋值后的L2后L1同样也会被...

python - 深浅拷贝【代码】

一.set集合set集合是python的一个基本数据类型. ?般不是很常用. set中的元素是不重复的.无序的.里面的元素必须是可hash的(int, str, tuple,bool), 我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也用{}表示注意: set集合中的元素必须是可hash的, 但是set本?是不可hash得. set是可变的. 1.使用set来去掉重复,且结果无序lst = ["莉莉",丽丽,李莉,"莉莉"] lst = list(set(lst)) #把lst转换成set,在转换...

Python 提高 深拷贝、浅拷贝【图】

深拷贝、浅拷贝 1. 浅拷贝 浅拷贝是对于一个对象的顶层拷贝 通俗的理解是:拷贝了引用,并没有拷贝内容2. 深拷贝 深拷贝是对于一个对象所有层次的拷贝(递归)进一步理解深拷贝3. 拷贝的其他方式 分片表达式可以赋值一个序列字典的copy方法可以拷贝一个字典4. 注意点 浅拷贝对不可变类型和可变类型的copy不同 copy.copy对于可变类型,会进行浅拷贝 copy.copy对于不可变类型,不会拷贝,仅仅是指向In [88]: a = [11,22,33] In [89]: b...

python_深拷贝与浅拷贝【代码】【图】

一、深拷贝和浅拷贝的区分 深拷贝:A变量变化,B变量不受影响 浅拷贝:A变量变化,B变量跟着改变 常见的深拷贝和浅拷贝 浅拷贝: 赋值 l=list1 ,l和list1指向的同一块内存,两者一起变化 深拷贝:定义 l=[1,2,3] 切片赋值 l=list1[:] 深度复制 l=copy.deepcopy(list1) 程序举例: 1、赋值 list1=[1,2,3,4] #定义 list2=list1 #直接赋值给list2,两者内存指向一个位置 for i in list1:if i%2: #奇数移除list1.remove(i)...

python深浅拷贝【代码】

各基本数据类型的地址存储及改变情况 在python中的数据类型包括:bool、int、long、float、str、set、list、tuple、dict等等。我们可以大致将这些数据类型归类为简单数据类型和复杂的数据结构。 数据结构: 集合结构:set 序列结构: tuple list (str) 映射结构: dict 基本数据类型 Int long float bool str .. 说明:由于python中的变量都是采用的引用语义,数据结构可以包含基础数据类型,导致了在pyt...

深度解读Python深拷贝与浅拷贝问题【图】

在平时工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题。为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用。为了生成这个副本,就产生了拷贝。今天就说一下Python中的深拷贝与浅拷贝的问题。 概念普及:对象、可变类型、引用 数据拷贝会涉及到Python中对象、可变类型、引用这3个概念,先来看看这几个概念,只有明白了他们才能更好的理解深拷贝与浅拷贝到底是怎...

(一)Python入门-5函数:05参数的传递-可变对象-不可变对象-浅拷贝和深拷贝-不可变对象含可变子对象【代码】

一:参数的传递函数的参数传递本质上就是:从实参到形参的赋值操作。 Python中“一切皆对象”, 所有的赋值操作都是“引用的赋值”。所以,Python中参数的传递都是“引用传递”,不 是“值传递”。具体操作时分为两类:1. 对“可变对象”进行“写操作”,直接作用于原对象本身。2. 对“不可变对象”进行“写操作”,会产生一个新的“对象空间”,并用新的值填 充这块空间。(起到其他语言的“值传递”效果,但不是“值传递”)可变...

python深拷贝和浅拷贝【图】

在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有三种方法, alist=[1,2,3,["a","b"]] (1)直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变 >>> b=alist>>> print b[1, 2, 3, [a, b]]>>> alist.append(5)>>> print alist;print b[1, 2, 3, [a, b], 5][1, 2, 3, [a, b], 5](2)copy浅拷贝...

Python之深浅拷贝

预备知识 : 数据在内存中的具体存储方式 : 内存是由一个又一个字节组成,而每一个字节都有一个唯一的地址,而数据在内存中即是从地址大的字节开始存储,也即内存寻址从大到小, 以lst = [3,2,3,2,1],假定一个整数在内存中占用两个字节,在内存中的存储为例,具体如下 : 地址变量值0xffffffff0010xffffffff0020xffffffff003lst[0]30xffffffff0040xffffffff005lst[1]20xffffffff0060xffffffff007ls...

python中的深浅拷贝的区别【代码】

li = [1,1,2,3,4,5,6,7,8,9]l2=li # 这样定义不行共用内存空间,其实是一体# l2 = [1,1,2,3,4,5,6,7,8,9]l3=li[:]for i in l2: if i%2!=0: li.remove(i)print(li) # [1, 2, 4, 6, 8]print(id(li)) # 获取内存地址,li、l2 li=l2 是相同的内存地址print(id(l2))print(id(l3))# 循环删除list的时候,都会出现这样的问题# 循环的时候,不要删除元素,下标会错乱# 解决的方法是利用两个list,循环不变的list# 深拷贝 l2=l...

Python——深拷贝和浅拷贝【代码】

深拷贝、浅拷贝 1. 浅拷贝 浅拷贝是对于一个对象的顶层拷贝import copya = [[1, 2], 3] b = copy.copy(a) print(id(a)) print(id(b)) print(id(a[0])) print(id(b[0])) print(id(a[1])) print(id(b[1]))a[0].append(1) print(a) print(b)输出结果:2249583452872 2250135748552 2249583452808 2249583452808 140714232963984 140714232963984 [[1, 2, 1], 3] [[1, 2, 1], 3] copy()是浅拷贝,只拷贝了最顶层的数组,而数组中的内容...

PYTHON3 - 相关标签