a = {
1:[1,2,3]}
b = a: 賦值引用,a 和 b 都指向同一個對象。
注意:在使用賦值“=”的時候,不可對原變量進行重新的賦值操作,否則原變量會指向一個新的內存地址。例如:
例1:
# 用"="進行賦值操作
a = [1,2,3]
b = a
a = [2,3,4]
print(a)
print(b)
""" 結果: [2, 3, 4] [1, 2, 3] """
例2:
# 對變量a本身進行修改
a = [1,2,3]
b = a
a.append(99)
print(a)
print(b)
"""" 結果: [1, 2, 3, 99] [1, 2, 3, 99] """
b = a.copy(): 淺拷貝, a 和 b 是一個獨立的對象,但他們的子對象還是指向統一對象(是引用)。
copy對於一個復雜對象的子對象並不會完全復制,比如序列裡的嵌套序列,字典裡的嵌套序列等都是復雜對象的子對象。對於子對象,python會把它當作一個公共鏡像存儲起來,所有對他的復制都被當成一個引用。
b = copy.deepcopy(a): 深度拷貝, a 和 b 完全拷貝了父對象及其子對象,兩者是完全獨立的。