1. 程式人生 > >Python中深拷貝與淺拷貝區別

Python中深拷貝與淺拷貝區別

分配 img 地址 append 淺拷貝 pen image pre 內容

淺拷貝,

list值是可變的,str值不可變,只能重新賦值

a=b=c=‘wjx‘
print(a,b,c)
c= ‘jmy‘#重新賦值了,所以內存分配了新的地址
print(a,b,c)
print(id(a))
print(id(b))
print(id(c))

技術分享

# 淺拷貝:
# a與b的指向的是一個內存地址,這個內容地址中存放著a與b的值,所以當a中元素變了,b的也跟著變了
a=b=[1,2,3]
a[2]=8
b.append(4)
print(a,b)
#深拷貝:a和b是分配了兩塊內存地址的,所以互不影響
import copy
a1=[13,[4,5,6]]
b1=copy.deepcopy(a1)
a1[-1].append(7)
print(b1)
print(a1)
print(id(a1))
print(id(b1))

Python中深拷貝與淺拷貝區別