罗田县升平网络工作室,一家专业从事网站建设的工作室

资讯论坛

 找回密码
 加入论坛

快捷登录

回帖中禁止出现的内容,违者将被直接永久禁止访问,删除ID处理 :1.违反法律法规 ,包括但不限于出现带有政治、色情、暴恐信息等内容;2.恶意攻击内容,包括但不限于:恶意攻击党和政府、辱骂跟帖者、攻击主题发布者、不服从论坛管理、挑衅管理者、挑战版规等;3.广告、推广内容,尤其出现带有病毒、恶意代码、广告链接等内容,包括但不限于:QQ号、文字QQ号、微信号、手机号、文字手机号、第三方网址、单位公司名称、网站名称等;4.回帖贴出该主题隐藏资源链接或其它主题隐藏资源链接的行为。
查看: 194|回复: 0

Python中浅拷贝的四种实现方法小结

[复制链接]

712

主题

616

帖子

694

积分

社区达人

积分
694
发表于 2021-11-12 16:24:10 | 显示全部楼层 |阅读模式
目录


  • 方式一:使用切片 [:]
  • 方式二:使用工厂函数
  • 方式三:使用数据类型自带的 copy 方法
  • 方式四:使用 copy 模块的 copy 方法

方式一:使用切片 [:]


列表
  1. # 浅拷贝 [:]old_list = [1, 2, [3, 4]]new_list = old_list[:]old_list.append(5)old_list[2][0] += 97print("Old list:", old_list, "old list id:", id(old_list), " old list[0] id:", id(old_list[2]))print("new list:", new_list, "new list id:", id(new_list), " new list[0] id:", id(new_list[2]))# 输出结果Old list: [1, 2, [100, 4], 5] old list id: 4537660608  old list[0] id: 4537659840new list: [1, 2, [100, 4]] new list id: 4537711424  new list[0] id: 4537659840
复制代码
方式二:使用工厂函数

工厂函数简介
       
  • 工厂函数看上去像函数,但实际是一个类   
  • 调用时,生成该数据类型类型的一个实例
可变对象的工厂函数
       
  • list()   
  • set()   
  • dict()
列表
  1. old_list = [1, 2, [3, 4]]new_list = list(old_list)old_list.append(5)old_list[2][0] += 97print("Old list:", old_list, "old list id:", id(old_list), " old list[0] id:", id(old_list[2]))print("new list:", new_list, "new list id:", id(new_list), " new list[0] id:", id(new_list[2]))
复制代码
集合
  1. old_set = {1, 2, 3}new_set = set(old_set)old_set.add(4)print("Old set:", old_set, "old set id:", id(old_set))print("new set:", new_set, "new set id:", id(new_set))# 输出结果Old set: {1, 2, 3, 4} old set id: 4484723648new set: {1, 2, 3} new set id: 4484723872
复制代码
字典
  1. old_dict = {"name": "小明"}new_dict = dict(old_dict)old_dict["second"] = "Python"print("Old dict:", old_dict, "old dict id:", id(old_dict))print("new dict:", new_dict, "new dict id:", id(new_dict))# 输出结果Old dict: {'name': '小明', 'second': 'Python'} old dict id: 4514161536new dict: {'name': '小明'} new dict id: 4515690304
复制代码
方式三:使用数据类型自带的 copy 方法


列表
  1. old_list = [1, 2, [3, 4]]new_list = old_list.copy()old_list.append(5)old_list[2][0] += 97print("Old list:", old_list, "old list id:", id(old_list), " old list[0] id:", id(old_list[2]))print("new list:", new_list, "new list id:", id(new_list), " new list[0] id:", id(new_list[2]))# 输出结果Old list: [1, 2, [100, 4], 5] old list id: 4309832000  old list[0] id: 4310372992new list: [1, 2, [100, 4]] new list id: 4309735296  new list[0] id: 4310372992
复制代码
集合
  1. old_set = {1, 2, 3}new_set = old_set.copy()old_set.add(4)print("Old set:", old_set, "old set id:", id(old_set))print("new set:", new_set, "new set id:", id(new_set))# 输出结果Old set: {1, 2, 3, 4} old set id: 4309931392new set: {1, 2, 3} new set id: 4309930944
复制代码
字典
  1. old_dict = {"name": "小明"}new_dict = old_dict.copy()old_dict["second"] = "Python"print("Old dict:", old_dict, "old dict id:", id(old_dict))print("new dict:", new_dict, "new dict id:", id(new_dict)) # 输出结果Old dict: {'name': '小明', 'second': 'Python'} old dict id: 4308452288new dict: {'name': '小明'} new dict id: 4308452224
复制代码
源码
  1. def copy(self, *args, **kwargs): # real signature unknown        """ Return a shallow copy of the list. """        pass
复制代码
已经写的很清楚,这是浅拷贝

方式四:使用 copy 模块的 copy 方法


列表
  1. from copy import copyold_list = [1, 2, [3, 4]]new_list = copy(old_list)old_list.append(5)old_list[2][0] += 97print("Old list:", old_list, "old list id:", id(old_list), " old list[0] id:", id(old_list[2]))print("new list:", new_list, "new list id:", id(new_list), " new list[0] id:", id(new_list[2]))# 输出结果Old list: [1, 2, [100, 4], 5] old list id: 4381013184  old list[0] id: 4381159936new list: [1, 2, [100, 4]] new list id: 4381012800  new list[0] id: 4381159936
复制代码
集合
  1. from copy import copyold_set = {1, 2, 3}new_set = copy(old_set)old_set.add(4)print("Old set:", old_set, "old set id:", id(old_set))print("new set:", new_set, "new set id:", id(new_set))# 输出结果Old set: {1, 2, 3, 4} old set id: 4381115552new set: {1, 2, 3} new set id: 4381115776
复制代码
字典
  1. from copy import copyold_dict = {"name": "小明"}new_dict = copy(old_dict)old_dict["second"] = "Python"print("Old dict:", old_dict, "old dict id:", id(old_dict))print("new dict:", new_dict, "new dict id:", id(new_dict))# 输出结果Old dict: {'name': '小明', 'second': 'Python'} old dict id: 4381159680new dict: {'name': '小明'} new dict id: 4379632576
复制代码
到此这篇关于Python中浅拷贝的四种实现方法小结的文章就介绍到这了,更多相关Python 浅拷贝内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:http://www.jb51.net/article/227354.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
打赏鼓励一下!
回复

使用道具 举报

回帖中禁止出现的内容,违者将被直接永久禁止访问,删除ID处理 :1.违反法律法规 ,包括但不限于出现带有政治、色情、暴恐信息等内容;2.恶意攻击内容,包括但不限于:恶意攻击党和政府、辱骂跟帖者、攻击主题发布者、不服从论坛管理、挑衅管理者、挑战版规等;3.广告、推广内容,尤其出现带有病毒、恶意代码、广告链接等内容,包括但不限于:QQ号、文字QQ号、微信号、手机号、文字手机号、第三方网址、单位公司名称、网站名称等;4.回帖贴出该主题隐藏资源链接或其它主题隐藏资源链接的行为。

浏览排行

(38463)2019-11-5 公共云钱包资金盘骗局揭秘: 网络传销+原始股骗局合体!

(22233)2019-12-20 12月17日 邓智天法院直播庭审疑问全解答!

(20722)2019-12-1 环保币GEC资金盘骗局最新消息: 即将崩盘!

(17244)2019-11-9 巨胸肥臀大长腿,嫩模糯美子真人COS不知火舞福利污图

(15868)2018-12-24 罗田县人民法院公布【第五批失信被执行人名单】 ...

(14972)2019-11-3 曝光!PTFX已经崩盘跑路,投资者血流成河!

(13018)2019-8-7 湖北电力网上缴费,支付宝绑定户号的初始密码是什么?

(12480)2018-10-17 罗田县人民政府“12345”市民服务热线服务指南

(11170)2019-12-11 公安定性了, 趣码是非法传销! 趣码怎么退回365元?

(11081)2019-12-15 满足你对女同事的幻想 风骚秘书阿朱销魂眼神勾魂摄魄

最新发表

[升平网络工作室]2025-8-23 [2025-08-23]罗田天气预报

[升平网络工作室]2025-8-23 西藏自治区成立60周年庆祝大会隆重举行 习近平出席大会

[升平网络工作室]2025-8-23 县委委员会召开查摆问题整改整治情况汇报会

[爱查小程序]2025-8-22 [爱查]在线听音乐操作说明

[升平网络工作室]2025-8-22 [2025-08-22]罗田天气预报

[升平网络工作室]2025-8-22 习近平率中央代表团抵达拉萨出席西藏自治区成立60周年庆祝活动

[升平网络工作室]2025-8-22 县关工委联合经济开发区开展“情系学子”助学活动 助力职工子女圆梦大学

[升平网络工作室]2025-8-21 2025年罗田县卫健系统赴高校公开招聘事业单位工作人员拟聘用人员公示公告

[升平网络工作室]2025-8-21 [2025-08-21]罗田天气预报

[升平网络工作室]2025-8-21 县安防委2025年度第三次全体(扩大)会召开

QQ|Archiver|手机版|小黑屋|资讯论坛BBS.SPW8.CN ( 鄂ICP备2021011341号-3 )|网站地图


手机扫一扫继续访问
[免责声明]
本站系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容!
[声明]本站文章版权归原作者所有 内容为作者个人观点 本站只提供参考并不构成任何投资及应用建议。

进入社区 | 发表新帖 | 百度收录 |
技术提供:罗田县升平网络工作室
站长Email:admin@spw8.cn
投诉电话(刮开查看):15374567400

GMT+8, 2025-8-23 19:25 , Processed in 0.237980 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表