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

Python_深浅拷贝

时间:2017-11-24 16:56:56      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:imp   color   空间   pre   拷贝   span   port   bsp   pytho   

深浅拷贝

‘copy’和‘=‘的区别:copy会开辟一个新的空间,而‘=’不会。

浅copy只会copy第一层,再里边的就进行共享了。

需要记住的是copy之后记住的是内存寻址地址,而浅copy时如果copy中有列表、字典等,记住的内存寻址是这个列表、字典的地址,也就是指向,当修改列表、字典中的东西时,记录的内存寻址没有发生改变,所以就会出现浅copy所描述的这种情况。

短暂感受:

# 修改字符串的时候没有发生变化
s_1 = [[1,2], mu, linux]
s_2 = s_1.copy()

s_2[1] = wj
print(s_1)
print(s_2)


# 修改列表的时候发生了变化,证明s_1和s_2是有联系的
s_1 = [[1,2], mu, linux]
s_2 = s_1.copy()

s_2[0][1] = 3
print(s_1)
print(s_2)

深浅拷贝混合使用:

import copy
a = [mu, 123, [6000,5000]]

b = copy.copy(a)
b[0] = lei
b[1] = 456
b[2][1] -= 2000
print(a)
print(b)

c = copy.deepcopy(a)                    # 此处深copy时a[2][1]已经是3000了
c[0] = cao
c[1] = 789
c[2][1] -= 1000
print(c)
print(a)
print(b)

 

Python_深浅拷贝

标签:imp   color   空间   pre   拷贝   span   port   bsp   pytho   

原文地址:http://www.cnblogs.com/dmjx/p/7890916.html

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