摘要:淺拷貝與深拷貝上一篇文章文件夾處理下一篇文章與對比淺拷貝淺拷貝拷貝了引用,沒有拷貝內容。實例的的結果的的深拷貝深拷貝對于一個對象所有層次的拷貝遞歸。
Python淺拷貝與深拷貝
上一篇文章:Python文件夾處理1、淺拷貝
下一篇文章:Python==與is對比
淺拷貝:拷貝了引用,沒有拷貝內容。
實例:
a=[1,2,3] b=a print("a的id:",id(a)) print("b的id:",id(b)) a.append(4) print(a) print(b)
結果:
a=[1,2,3] b=a print("a的id:",id(a)) print("b的id:",id(b)) a.append(4) print(a) print(b)2、深拷貝
深拷貝:對于一個對象所有層次的拷貝(遞歸)。使用copy.deepcopy()完成深拷貝
實例:
import copy a=[1,2,3] b=[4,5,6] c=[a,b] d=c e=copy.deepcopy(c) print("c的值",c) print("d的值",d) print("e的值",e) print("c的id:",id(c)) print("d的id:",id(d)) print("e的id:",id(e)) a.append(7) print("c的值",c) print("d的值",d) print("e的值",e) print("c的id:",id(c)) print("d的id:",id(d)) print("e的id:",id(e))
結果:
c的值 [[1, 2, 3], [4, 5, 6]] d的值 [[1, 2, 3], [4, 5, 6]] e的值 [[1, 2, 3], [4, 5, 6]] c的id: 4329011592 d的id: 4329011592 e的id: 4333645768 c的值 [[1, 2, 3, 7], [4, 5, 6]] d的值 [[1, 2, 3, 7], [4, 5, 6]] e的值 [[1, 2, 3], [4, 5, 6]] c的id: 4329011592 d的id: 4329011592 e的id: 43336457683、cope.cope()對可變類型和不可變類型影響不同
實例:
import copy a=[1,2,3] b=copy.copy(a) print("a的id:",id(a)) print("b的id:",id(b)) a.append(4) print(a) print(b) #不可變類型 c=(1,2,3) d=copy.copy(c) print("c的id:",id(c)) print("d的id:",id(d))
結果:
a的id: 4372057096 b的id: 4372055816 [1, 2, 3, 4] [1, 2, 3] c的id: 4372006736 d的id: 4372006736
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42210.html
1 python語言哲學:賦值語句,都是引用。 # 將a賦值給b,改變a的第一個元素,b的第一個元素隨之改變 a = [1, 2, 3] b = a print(b) #[1, 2, 3] a[0] = 0 print(a) #[0, 2, 3] b #[0, 2, 3] 2 想a和b互不干擾怎么辦?拷貝啊! # 2.1 淺拷貝 切片 [::] [開始:結束:步進] a = [1, 2, 3...
摘要:淺拷貝與深拷貝一數據類型數據分為基本數據類型,和對象數據類型。淺拷貝是按位拷貝對象,它會創建一個新對象,這個對象有著原始對象屬性值的一份精確拷貝。對于字符串數字及布爾值來說不是或者對象,會拷貝這些值到新的數組里。 淺拷貝與深拷貝 一、數據類型數據分為基本數據類型(String, Number, Boolean, Null, Undefined,Symbol)和對象數據類型。 基本數據類...
摘要:所以,深拷貝是對對象以及對象的所有子對象進行拷貝實現方式就是遞歸調用淺拷貝對于深拷貝的對象,改變源對象不會對得到的對象有影響。 為什么會有淺拷貝與深拷貝什么是淺拷貝與深拷貝如何實現淺拷貝與深拷貝好了,問題出來了,那么下面就讓我們帶著這幾個問題去探究一下吧! 如果文章中有出現紕漏、錯誤之處,還請看到的小伙伴多多指教,先行謝過 以下↓ 數據類型在開始了解 淺拷貝 與 深拷貝 之前,讓我們先...
摘要:所以,深拷貝是對對象以及對象的所有子對象進行拷貝實現方式就是遞歸調用淺拷貝對于深拷貝的對象,改變源對象不會對得到的對象有影響。 上一篇 JavaScript中的繼承 前言 文章開始之前,讓我們先思考一下這幾個問題: 為什么會有淺拷貝與深拷貝 什么是淺拷貝與深拷貝 如何實現淺拷貝與深拷貝 好了,問題出來了,那么下面就讓我們帶著這幾個問題去探究一下吧! 如果文章中有出現紕漏、錯誤之處...
摘要:原文地址淺拷貝和深拷貝只針對像這樣的復雜對象的簡單來說,淺拷貝只拷貝一層對象的屬性,而深拷貝則遞歸拷貝了所有層級。淺拷貝通過來實現淺拷貝。 原文地址:http://www.silenceboy.com/201... 淺拷貝和深拷貝只針對像Object, Array這樣的復雜對象的.簡單來說,淺拷貝只拷貝一層對象的屬性,而深拷貝則遞歸拷貝了所有層級。 淺拷貝 通過 Object.ass...
閱讀 1707·2023-04-26 02:30
閱讀 1033·2021-11-10 11:36
閱讀 1380·2021-10-08 10:14
閱讀 3496·2021-09-28 09:35
閱讀 1552·2021-08-23 09:47
閱讀 2544·2019-08-30 15:56
閱讀 1469·2019-08-30 15:44
閱讀 1751·2019-08-30 13:59