网站首页 > 技术文章 正文
概述
今天主要来看看Python中的浅拷贝和深拷贝内容,这里用一个实例来说明~
需求:
将一个列表的数据复制到另一个列表中。
思路:
使用列表[:],拿不准可以调用copy模块。
实现方法:
#!/usr/bin/python
#将一个列表的数据复制到另一个列表中
import copy
a=[1,2,3,4,['a','b']]
b=a #赋值
c=a[:] #浅拷贝
d=copy.copy(a) #浅拷贝
e=copy.deepcopy(a) #深拷贝
#输出
print('================a改变前================')
print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)
a.append(5)
a[4].append('c')
#输出
print('================a改变后================')
print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)
输出:
python的复制,深拷贝和浅拷贝的区别
一般有三种方法,
alist=[1,2,3,["a","b"]]
1、直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变
2、copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变
在浅拷贝时,拷贝出来的新对象的地址和原对象是不一样的,但是新对象里面的可变元素(如列表)的地址和原对象里的可变元素的地址是相同的,也就是说浅拷贝它拷贝的是浅层次的数据结构(不可变元素),对象里的可变元素作为深层次的数据结构并没有被拷贝到新地址里面去,而是和原对象里的可变元素指向同一个地址,所以在新对象或原对象里对这个可变元素做修改时,两个对象是同时改变的.
浅拷贝,原对象的list元素改变的话会改变当前对象,如果当前对象中list元素改变了,也同样会影响原对象。
3、深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变
深拷贝就是完全跟以前就没有任何关系了,原来的对象怎么改都不会影响当前对象
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
猜你喜欢
- 2025-04-08 分享一份mysql一键优化脚本,值得收藏
- 2025-04-08 基于Python+MySql+Flask+Vue的电脑运维管理系统
- 2025-04-08 python常见的网络编程模式: Client/Server编程模式
- 2025-04-08 Python 生成器里面的 return 有什么用?
- 2025-04-08 Python-一些基本概念(python的意义和作用)
- 2025-04-08 使用 Python Flask 创建简易文件上传服务
- 2025-04-08 Python 爬虫入门五之 Cookie 的使用
- 2025-04-08 监控运维大屏展示,炫酷界面,尽在Grafana中
- 2025-04-08 python网络运维,批量修改交换机配置
- 2025-04-08 Python运维日志排序(python日志处理)
- 264℃Python短文,Python中的嵌套条件语句(六)
- 263℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 256℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 256℃Python实现字符串小写转大写并写入文件
- 116℃原来2025是完美的平方年,一起探索六种平方的算吧
- 96℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 89℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)