1. 程式人生 > >直接賦值and深淺拷貝

直接賦值and深淺拷貝

epc 圖片 分享 修改 img 都是 列表 import 變量

# 直接賦值,之後變量應用的都是同一個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深淺拷貝