Python的赋值、浅拷贝和深拷贝
2021/12/23 20:08:55
本文主要是介绍Python的赋值、浅拷贝和深拷贝,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
示例代码:
# This Python file uses the following encoding: utf-8 """ 直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 """ import copy a = [1, 2, 3, 4, ['a', 'b']] # 原始对象 b = a # 赋值引用,a 和 b 都指向同一个对象。【要改变都改变】 c = copy.copy(a) # 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。【子对象改变就都改变】 d = copy.deepcopy(a) # 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。【两者没任何关系】 a.append(5) # 修改对象a a[4].append('c') # 修改对象a中的['a', 'b']数组对象 print('a = ', a) print('b = ', b) print('c = ', c) print('d = ', d)
输出结果:
a = [1, 2, 3, 4, ['a', 'b', 'c'], 5] # 输出数组a b = [1, 2, 3, 4, ['a', 'b', 'c'], 5] # 因为b与a指向同一对象,b的值就是a的值 c = [1, 2, 3, 4, ['a', 'b', 'c']] # c为a的浅拷贝,a中的子对象修改了,所以c的子对象也修改了,其他无改变 d = [1, 2, 3, 4, ['a', 'b']] # d与a没关系,a改变d也不会改变
这篇关于Python的赋值、浅拷贝和深拷贝的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程