Python_深浅拷贝

Posted 隔壁王师傅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_深浅拷贝相关的知识,希望对你有一定的参考价值。

深浅拷贝

‘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_深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章

深浅拷贝_python

Python从入门到放弃_二次编码_深浅拷贝

Python_深浅拷贝

python基础三(深浅拷贝)

python语法_深浅拷贝

小学生都能学会的python(深浅拷贝)