Python 标准类库-数据类型之copy-深拷贝浅拷贝操作

简介: Python 标准类库-数据类型之copy-深拷贝浅拷贝操作

标准类库-数据类型之copy-深拷贝浅拷贝操作

 

by:授客QQ1033553122

Python中赋值并不会拷贝对象,只是创建目标和对象的绑定关系。

 

copy.copy(x)

返回x的浅拷贝

 

copy.deepcopy(x)

返回x的深拷贝

 

exception copy.error

抛出模块指定的错误

例子

>>> import copy

>>> lista = [["hi", "shouke"], 2018]

>>> listb = copy.copy(lista)

>>> id(lista), id(listb)

(40713288, 51361160)

>>> for item in lista:

...      print(id(item))

...

51361032

3944400

>>> for item in listb:

...      print(id(item))

...

51361032

3944400

如上,浅拷贝,拷贝的对象及被拷贝对象(例中分别为listblista)id都不一样,但是两者所拥有的元素对象的id值是一样的


对比试验

>>> listb = copy.deepcopy(lista)

>>> for item in listb:

...      print(id(item))

...

51300488

3944400

 

如上,深拷贝,拷贝的对象及被拷贝对象(例中分别为listblista)id都不一样,两者所拥有的元素对象的id值:

1)如果是不可变对象,比如例中的整数,两者的id一样

2)如果是可变对象,比如例子中的列表(["hi", "shouke"]),则两者的id值不一样。

 

修改被拷贝对象的元素对象

>>> lista[0].append('nihao')

>>> lista

[['hi', 'shouke', 'nihao'], 2018]

>>> listb

[['hi', 'shouke'], 2018]

 

如上,深拷贝,拷贝的对象及被拷贝对象两者互不影响

 

对比试验

>>> listb = copy.copy(lista)

>>> lista[0].remove('nihao')

>>> lista

[['hi', 'shouke'], 2018]

>>> listb

[['hi', 'shouke'], 2018]

>>> lista[0].append('nihao')

>>> lista

[['hi', 'shouke', 'nihao'], 2018]

>>> listb

[['hi', 'shouke', 'nihao'], 2018]

 

如上,类似c语言,浅拷贝,被拷贝对象拥有可变元素对象时,拷贝的对象及被拷贝对象两者会相互影响

 

 

 

 

 

 

目录
相关文章
|
2月前
|
人工智能 Python
python基本数据类型简介
本文简要介绍了Python的基本数据类型,包括整型、浮点型、字符串、列表、字典和布尔类型,帮助读者对Python数据类型有初步了解。
|
2月前
|
存储 安全 开发者
Python中的数据类型详解
Python是一种动态类型编程语言,具备丰富的数据类型,包括数值类型、序列类型、映射类型和集合类型等。这些类型为高效编程提供了强大支持。
|
4月前
|
Python
Python技术解析:了解数字类型及数据类型转换的方法。
在Python的世界里,数字并不只是简单的数学符号,他们更多的是一种生动有趣的语言,用来表达我们的思维和创意。希望你从这个小小的讲解中学到了有趣的内容,用Python的魔法揭示数字的奥秘。
114 26
|
5月前
|
存储 程序员 Python
Python 变量和简单数据类型
本文介绍了 Python 编程的基础知识,从创建第一个 Python 文件 `hello_world.py` 开始,讲解了 Python 文件的运行机制及解释器的作用。接着深入探讨了变量的定义、命名规则和使用方法,并通过示例说明如何修改变量值。同时,文章详细解析了字符串的操作,包括大小写转换、变量插入及空白字符处理等技巧。此外,还涵盖了数字运算(整数与浮点数)、常量定义以及注释的使用。最后引用了《Python 之禅》,强调代码设计的美学原则和哲学思想。适合初学者快速掌握 Python 基础语法和编程理念。
|
5月前
|
Python
探索Python的各式数据类型
以上就是Python数据类型的一次简单而有趣的游览。和她继续接触,你会发现她还有更多有趣的面象,例如集合里的冰冻集合(Frozenset),序列里的字符串(String)和字节序列(Bytes)等等。希望这次游览能对你有所启发,让你更好地理解和使用Python。
76 21
|
10月前
|
Python
Python中不同数据类型之间如何进行转换?
Python中不同数据类型之间如何进行转换?
241 62
|
10月前
|
存储 开发者 Python
Python 的数据类型
Python 的数据类型
186 61
|
9月前
|
Python
Python 中一些常见的数据类型
Python 中一些常见的数据类型
468 8
|
10月前
|
机器学习/深度学习 存储 数据挖掘
Python 编程入门:理解变量、数据类型和基本运算
【10月更文挑战第43天】在编程的海洋中,Python是一艘易于驾驭的小船。本文将带你启航,探索Python编程的基础:变量的声明与使用、丰富的数据类型以及如何通过基本运算符来操作它们。我们将从浅显易懂的例子出发,逐步深入到代码示例,确保即使是零基础的读者也能跟上步伐。准备好了吗?让我们开始吧!
131 0
|
11月前
|
存储 程序员 Python
Python编程入门:探索变量和数据类型
【10月更文挑战第8天】本文是针对初学者的Python编程入门指南,重点介绍Python中变量的定义和使用以及不同的数据类型。我们将通过实例来理解基本概念,并展示如何在Python程序中应用这些知识。文章旨在帮助初学者建立扎实的基础,使他们能够更自信地编写Python代码。

热门文章

最新文章

推荐镜像

更多