python賦值 淺拷貝和深拷貝的區別

2021-10-10 22:44:47 字數 432 閱讀 7893

首先需要了解下幾個概念:

例:當我們寫a='python』時,python直譯器幹的事情:

建立變數a

建立乙個物件(分配一塊記憶體),來儲存值 『python』

將變數與物件,通過指標連線起來,從變數到物件的連線稱之為引用(變數引用物件)!在這裡插入描述](

1、對於非容器型別,如數字,字元,以及其它「原子」型別,沒有拷貝一說。產生的都是原物件的引用。

2、如果元組變數值包含原子型別物件,即使採用了深拷貝,也只能得到淺拷貝

python資料結構視覺化工具網頁:

淺拷貝 深拷貝和淺賦值 深賦值

include includeusing namespace std class string else 淺拷貝 也就是系統預設的拷貝,可寫可不寫。string const string s 預設的拷貝構造 深拷貝 string const string s string s2 s1 深賦值 str...

python賦值,淺拷貝和深拷貝

a 1 b a a 2 a 2 b 1 你將1賦給a變數,然後拷貝a中的值,將它賦給變數b。當稍 後將a中的值改變為2時,這不會影響b中的值。這是因為a和b 是不同的變數,儲存了不同的值。但列表不是這樣的。當你將列表賦給乙個變數時,實際上是將列表的 引用 賦給了該變數。引用是乙個值,指向某些資料。列...

Python 賦值 淺拷貝 深拷貝

賦值 a b,只拷貝了物件的引用,沒有拷貝內容。兩個物件的id一樣 淺拷貝 copy.copy 構造乙個新的復合物件,然後將子物件引用插入到原始物件的副本中。深拷貝 copy.deepcopy 構造乙個新的復合物件,然後遞迴地將子物件副本插入原始物件的副本。給個栗子 從這個栗子可以看出,對c進行修改...