码迷,mamicode.com
首页 > 编程语言 > 详细

Python 深浅拷贝

时间:2018-01-10 14:05:23      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:复杂数据类型   [1]   ack   技术分享   family   epc   --   oss   输出   


s1 = s.copy()
s1[0]='s1'
s[2][0] = 2
s1[2][1]=4
输出:
['s', 'sname', [2, 4]]
['s1', 'sname', [2, 4]]

浅拷贝只拷贝第一层  即  s1拷贝生成新的空间存储  s  sname 修改不会影响s   在s1中存储  [1,2] 为地址指向


浅拷贝和A=B不同

A=123
B=A
B=456
print(A)
print(B)
输出:
123
456


s = ['s', 'sname', [1, 2]]
s1 = s
s1[0]='s1'
s[2][0] = 2
s1[2][1]=4
输出:
['s1', 'sname', [2, 4]]
['s1', 'sname', [2, 4]]

当A=B时  只是简单数字字符串时  B指向A指向的地址 当B改掉后 B新开辟内存空间存储新的值

当s=s1   列表等复杂数据类型   指向的是一个整体的地址 共享一块内存空间不会开辟新的内存空间


技术分享图片


技术分享图片


import 
copys = ['s', 'sname', [1, 2]]
s1 = ss1[0]='s1's[2][0] = 2
s1[2][1]=4
s3= copy.deepcopy(s)
s3[0] = 's3'
s3[2][0]=6
print(s)
print(s1)
print(s3)
输出:
['s1', 'sname', [2, 4]]
['s1', 'sname', [2, 4]]
['s3', 'sname', [6, 4]]
#深层拷贝
-----------------
import copy
copy.deepcopy(s)
-----------------


Python 深浅拷贝

标签:复杂数据类型   [1]   ack   技术分享   family   epc   --   oss   输出   

原文地址:http://blog.51cto.com/13562606/2059377

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!