參考文章:
一般將已有的值複製給新變數,都是用等號,但是對於字典、列表型別的資料最好不要這樣。
例如a = 3、b = a,b就能獲取到a的值,並且b發成變化,不會影響到a的值。但是當a是字典、列表的時候,b = a後,b發生變化也會影響到a。
a = 3
b = a
print(a) ---> 3
print(b) ---> 3
b = 5
print(a) ---> 3
print(b) ---> 5
b發生改變不會影響到a
********************************************
但是當a是字典、列表時
a =
b = a
print(a) --->
print(b) --->
b['msg'] = 'false'
print(a) --->
print(b) --->
b發生改變會影響到a
會發生這種情況和資料的儲存有關。
可變資料型別:當該資料型別對應變數的值發生變化時,對應記憶體位址並沒有開闢新的記憶體,而是在原來的記憶體值上進行修改。
列表、字典都是屬於可變資料型別
不可變資料型別:當該資料型別對應變數的值發生變化時,原來記憶體中的值不變,而是會開闢一塊新的記憶體,變數指向新的記憶體位址。
元祖、字串、整型、浮點型、布林型都是不可變資料型別
所以如果是要複製列表、字典的話,一般用copy.copy(),這樣即使b變更了也不會影響到原來的a
a = [code,msg,data]
b = copy.copy(a)
******************************
a =
b = copy.copy(b)
但是如果列表、字典是有多層的話,copy.copy()只會複製到第一層資料,需要用copy.deepcopy()才能把包括子列表、子字典在內的完全複製
a = [code,msg,data,[test1,test2,[3,4]]]
b = copy.deepcopy(a)
******************************
a = }
b = copy.deepcopy(b)
python 列表複製
我們經常需要根據已有列表來建立全新的列表,下面來介紹列表複製的工作原理。1 原理 要複製列表,首先需要建立乙個包含整個列表的切片,方法是同時省略起始和終止索引 即讓python建立乙個始於第乙個元素,終止於最後乙個元素的切片,便可複製整個切片。例 將 myfoods 複製給 friendfoods ...
python列表複製
我想實現乙個列表複製的操作,於是我就寫下了下面的 list 2 list 1 print list 2 print list 1 結果卻是這個樣子滴 banana berry banana berry 於是乎,我發現了乙個問題,list 2 list 1這樣寫並不是真正的列表複製,而是list 2 ...
python 複製列表內容 Python 複製列表
python 複製列表 定義乙個列表,並將該列表元素複製到另外乙個列表上。def clone test li1 li copy li1 return li copy li1 4,8,2,10,15,18 li2 clone test li1 print 原始列表 li1 print 複製後列表 li...