深浅拷贝问题
1.计算机基础2.编程语言和Python语言介绍3.八大基本数据类型4.python语法入门变量和常量5.python和pycharm相关补充6.计算机五大部件补充7.文件操作8.编码和解码9.字符编码10.基本数据类型的内置方法11.循坏结构12.流程控制13.基本运算符14.程序与用户交互15.迭代器16.闭包函数17.装饰器18.多层语法糖嵌套19.函数的参数20.函数的可变长参数21.命名关键字参数22.名称空间与作用域23.异常处理
24.深浅拷贝问题
25.函数的定义和调用26.控制文件读写内容的模式27.主动控制文件内指针移动28.文件的操作方法29.垃圾回收机制GC30.可变与不可变类型31.元类32.内置方法33.pickle模块34.单例模式35.方法补充issubclass和isinstance36.多态37.继承38.面向对象的三大特性39.封装40.内置函数41.面向对象42.logging模块43.subprocess模块44.正则45.datetime模块46.time模块47.绝对路径和相对路径48.random模块49.os模块50.hashlib模块51.模块与包52.json模块53.生成器54.三元运算符深浅拷贝问题
- copy.copy浅拷贝
- copy.deepcopy深拷贝
浅拷贝copy.copy
- copy.copy浅拷贝
- 原来的拷贝对象------拷贝出了一个新的对象
- 修改原对象------原对象必须改变-----新对象也会随着原对象的改变而改变。
- 总结:复制一份原来的对象,如果原来的对象中存在可变数据类型,那么修改原来对象中的可变数据类型之后,原来的对象中数据肯定会改变,浅拷贝后的新对象中的数据也会随着原来对象中的数据而改变。
import copy
"""浅拷贝"""
# #原列表
# old_list=[1,2,3,[11,22]]
# #拷贝的新列表
# new_list=copy.copy(old_list)
# #修改原列表
# old_list[3].append(33)
# #输出源列表和新列表
# print(old_list)
# print(new_list)
# # 原来列表[1, 2, 3, [11, 22, 33]]
# # 新的列表[1, 2, 3, [11, 22, 33]]
深拷贝copy.deepcopy
- copy.deepcopy深拷贝
- 原来对象-----拷贝出了一个新对象
- 修改了原来的对象------原来对象肯定改变----拷贝出来的新对象不会发生改变
- 总结:复制一份原来的对象,如果原来的对象中存在可变数据类型,那么修改原来对象中的可变数据类型之后,原来的对象中数据肯定会改变,深拷贝后的新对象中的数据不会改变。
import copy
"""深拷贝"""
# #原列表
# old_list=[1,2,3,[11,22]]
# #拷贝的新列表
# new_list=copy.deepcopy(old_list)
# #修改原列表
# old_list[3].append(33)
# #输出源列表和新列表
# print(old_list)
# print(new_list)
# # 原来列表[1, 2, 3, [11, 22, 33]]
# # 新列表[1, 2, 3, [11, 22]]
面试题
"""面试题"""
v1 = [1, 2, 3, 4, 5]#1699375391488
v2 = [v1, v1, v1]
v2[1][0] = 111
v2[2][0] = 222
print(id(v1))
print(id(v2[0]),id(v2[0]),id(v2[0]))#1699375391488 1699375391488 1699375391488
print(v1)#[222, 2, 3, 4, 5]
print(v2)#[[222, 2, 3, 4, 5], [222, 2, 3, 4, 5], [222, 2, 3, 4, 5]]
"""
v1是一个列表,修改列表内的元素不会改变列表的内存地址
v2中的v1仍是同一个内存地址,修改v2中v1列表的元素不会使v1的内存地址发生改变,
所以v2中每个v1元素都是内存地址相同的,相同的内存地址内的元素都相同。
"""
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)