今天來講一下我自己理解的 「賦值「,「淺拷貝」,「深拷貝」
1.賦值
"""= 賦值 賦值只是將a的引用賦值給了b"""如上面所有,a只是將b的引用給了b,而b在尾部新增了乙個元素6則會影響到a。#a = [1,2,3,[4,5]]
# b = a
# print(a)
#執行結果: [1, 2, 3, [4, 5],6] a
這也是 網上「物件賦值實際上是物件的引用」的體現了
2.淺拷貝
"""copy,淺拷貝,只是複製了a裡面的資料,但是裡面的子物件沒有被複製!"""3.深拷貝# a = [1,2,3,[4,5]]
# b = a.copy()
# print(a)
# 執行結果:[1, 2, 3, [4, 5, 6]] a
"""深copy,不但複製了a裡面的資料,而且連a裡面的子物件也被複製了!"""這個也是很多面試官會問的乙個常見問題,所以今天有感而發整理出來.a = [1,2,3,[4,5]]
b = copy.deepcopy(a)
print(a)
#執行結果: [1, 2, 3, [4, 5]] a
賦值 淺拷貝 深拷貝之我理解
一 2個為什麼 先通過2個為什麼來了解一下python記憶體中變數的儲存情況。name 1,2,3,alex rain name2 name.copy 將原列表copy乙份賦值給name2 print name 1,2,3,alex rain print name2 1,2,3,alex rain ...
我理解的淺拷貝和深拷貝
淺拷貝 通過乙個物件來建立乙個新物件,如果物件的屬性的值是基本資料型別,直接把值賦給新物件,如果值是引用型別則把資料的對應的記憶體位址賦給新物件 因為兩個物件對應的是同乙個記憶體位址,當其中乙個物件資料改變了,就相當於改變了記憶體位址,所以會影響到別乙個物件 var obj1 var obj2 ob...
Python下的深拷貝 淺拷貝和賦值
最近刷題時遇到關於拷貝的題。特別是在遞迴這種型別的問題是很容易踩坑。所以把這個總結下來。修改不可變物件 str tuple等 需要開闢新的空間 修改可變物件 list等 不需要開闢新的空間 import copy a 1,2,3,a b c b a 賦值 c copy.copy a 淺拷貝 d co...