直接赋值and深浅拷贝
Posted mingsonly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了直接赋值and深浅拷贝相关的知识,希望对你有一定的参考价值。
# 直接赋值,之后变量应用的都是同一个id()地址,后续修改所用饮用也会修改
num1=[1,2,3,4]
num2=num1
print(id(num1))
print(id(num2))
num2[0]=111
print(num1)
print(num2)
#深拷贝 完全开辟新空间,修改copy后的值,前值不会被影响
import copy
num1=[1,2,3,4]
num2=copy.deepcopy(num1)
print(num1,num2)
print(id(num1))
print(id(num2))
num2[0]=111
print(num1,num2)
# 浅拷贝 只有当list存在子列表中,它的子列表id()才相同,后续单独修改子列表中的值,初始才会修改
num1=[1,2,3,4,[5,6,7]]
num2=copy.copy(num1)
print(num1,num2)
print(id(num1))
print(id(num2))
print(id(num1[-1]))
print(id(num2[-1]))
num2[-1][0]=[8,9,0]
print(num1)
print(num2)
以上是关于直接赋值and深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章