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 淺拷貝 切片 [::] [開始:結(jié)束:步進]
a = [1, 2, 3] b = a[::] # 這里就是復制了一份a print(b) #[1, 2, 3] a[0] = 0 print(a) [0, 2, 3] print(b) [1, 2, 3] # 問題:b = a[::]只是表層拷貝,里面的列表只是復制了一個引用出來,這兩個引用指向的地址是一樣的,改了其中一個,當然另一個也跟著變了 a = [0, [1, 2], 3] b = a[::] a #[0, [1, 2], 3] b #[0, [1, 2], 3] a[0] = 1 a #[1, [1, 2], 3] b #[0, [1, 2], 3] a[1][0] = 0 a #[1, [0, 2], 3] b #[0, [0, 2], 3]
# 2.2 深拷貝
import copy b = copy.deepcopy(a) b = copy.copy(a) #此為淺拷貝
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43703.html
摘要:淺拷貝與深拷貝一數(shù)據(jù)類型數(shù)據(jù)分為基本數(shù)據(jù)類型,和對象數(shù)據(jù)類型。淺拷貝是按位拷貝對象,它會創(chuàng)建一個新對象,這個對象有著原始對象屬性值的一份精確拷貝。對于字符串數(shù)字及布爾值來說不是或者對象,會拷貝這些值到新的數(shù)組里。 淺拷貝與深拷貝 一、數(shù)據(jù)類型數(shù)據(jù)分為基本數(shù)據(jù)類型(String, Number, Boolean, Null, Undefined,Symbol)和對象數(shù)據(jù)類型。 基本數(shù)據(jù)類...
摘要:所以,深拷貝是對對象以及對象的所有子對象進行拷貝實現(xiàn)方式就是遞歸調(diào)用淺拷貝對于深拷貝的對象,改變源對象不會對得到的對象有影響。 為什么會有淺拷貝與深拷貝什么是淺拷貝與深拷貝如何實現(xiàn)淺拷貝與深拷貝好了,問題出來了,那么下面就讓我們帶著這幾個問題去探究一下吧! 如果文章中有出現(xiàn)紕漏、錯誤之處,還請看到的小伙伴多多指教,先行謝過 以下↓ 數(shù)據(jù)類型在開始了解 淺拷貝 與 深拷貝 之前,讓我們先...
摘要:所以,深拷貝是對對象以及對象的所有子對象進行拷貝實現(xiàn)方式就是遞歸調(diào)用淺拷貝對于深拷貝的對象,改變源對象不會對得到的對象有影響。 上一篇 JavaScript中的繼承 前言 文章開始之前,讓我們先思考一下這幾個問題: 為什么會有淺拷貝與深拷貝 什么是淺拷貝與深拷貝 如何實現(xiàn)淺拷貝與深拷貝 好了,問題出來了,那么下面就讓我們帶著這幾個問題去探究一下吧! 如果文章中有出現(xiàn)紕漏、錯誤之處...
閱讀 748·2021-11-11 16:54
閱讀 3069·2021-09-26 09:55
閱讀 2022·2021-09-07 10:20
閱讀 1213·2019-08-30 10:58
閱讀 1059·2019-08-28 18:04
閱讀 710·2019-08-26 13:57
閱讀 3601·2019-08-26 13:45
閱讀 1166·2019-08-26 11:42