Python编程 深拷贝和浅拷贝

举报
千江有水千江月 发表于 2020/12/23 23:25:35 2020/12/23
【摘要】 所属的课程名称及链接[AI基础课程--Python编程知识]环境信息 ModelArts   Notebook - Multi-Engine 1.0 (python3)-cpu | CPU     JupyterLab - Notebook - Conda-python3浅拷贝# 浅拷贝list_source = [1,2,3,[4,5,6]]list_temp_copy = list_so...

所属的课程名称及链接

[AI基础课程--Python编程知识]


环境信息

  •  ModelArts
    •    Notebook - Multi-Engine 1.0 (python3)-cpu | CPU
      •      JupyterLab - Notebook - Conda-python3


浅拷贝

# 浅拷贝
list_source = [1,2,3,[4,5,6]]
list_temp_copy = list_source.copy()

print("查看源和浅拷贝的列表地址")
print(list_source,id(list_source))
print(list_temp_copy,id(list_temp_copy))

print("查看列表中的列表元素的地址")  # 注意:地址是相同的!
print(list_source[3],id(list_source[3]))
print(list_temp_copy[3],id(list_temp_copy[3]))
查看源和浅拷贝的列表地址
[1, 2, 3, [4, 5, 6]] 140504914034312
[1, 2, 3, [4, 5, 6]] 140505024123208
查看列表中的列表元素的地址
[4, 5, 6] 140504913200072
[4, 5, 6] 140504913200072


深拷贝

# 深拷贝
import copy
list_source = [1,2,3,[4,5,[7,8,9]]]
list_temp_deepcopy = copy.deepcopy(list_source)

print("查看源和深拷贝列表的地址")
print(list_source,id(list_source))
print(list_temp_deepcopy,id(list_temp_deepcopy))

print("查看列表中的列表元素的地址")
print(list_source[3],id(list_source[3]))
print(list_temp_deepcopy[3],id(list_temp_deepcopy[3]))

print("查看列表中的列表的列表元素的地址")
print(list_source[3][2],id(list_source[3][2]))
print(list_temp_deepcopy[3][2],id(list_temp_deepcopy[3][2]))
查看源和深拷贝列表的地址
[1, 2, 3, [4, 5, [7, 8, 9]]] 140504913430728
[1, 2, 3, [4, 5, [7, 8, 9]]] 140504913430536
查看列表中的列表元素的地址
[4, 5, [7, 8, 9]] 140504913179720
[4, 5, [7, 8, 9]] 140504913430344
查看列表中的列表的列表元素的地址
[7, 8, 9] 140504913430920
[7, 8, 9] 140504913431496


备注

1. 感谢老师的教学与课件  
2. 欢迎各位同学一起来交流学习心得^_^  
3. 沙箱实验、认证、论坛和直播,其中包含了许多优质的内容,推荐了解与学习。  


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。