python變數的引用,淺拷貝

2022-04-03 01:22:42 字數 534 閱讀 1267

python的變數是物件引用

l1和l2引用的相同的物件,所以會相互影響

元組不變的是引用的實體地址,如果引用的物件是可變的,那麼遠祖也會發生變化

但是t1[2]的id時鐘沒有發生變化

2 預設是淺拷貝,如果不可變,,那麼互相不影響,沒問題

如果變數是可變的物件,就會比較麻煩

最終發現l1和l2始終引用相同的list但是因為+=元組的運算是新建立tuple重新繫結,所以不引用相同的tuple

深複製:有時候需要深複製才會避免不必要的bug

deepcopy 深複製

新變數和原始變數完全不影響

python 引用,淺拷貝,深拷貝

引用 當物件是不可變型別的時候,int float double string tuple 純tuple 遇到 引用 問題時,雖然起初兩個變數指向同乙個記憶體位址,但是改變了其中乙個值,並不會影響另外乙個 會重新開闢記憶體位址 當物件是可變型別的時候,list dic,遇到 引用 問題,會一直共享一...

Python深拷貝 淺拷貝 引用

列表巢狀 如果想拷貝之後賦值的變數不想影響之前的列 表變數import copy 反之copy usr bin env python coding utf 8 author mxl time 2020 3 17 import copy a 1,2,3 b a a print a的初始值為 str a...

Python引用 淺拷貝 深拷貝

1 概念 深拷貝 將父和子的值都進行傳遞,無論怎麼去修改源變數,深拷貝的變數都和源變數無關 2 引用 我們建立乙個變數a,通過引用將a賦值給變數b,使用id 檢視變數位址,a與b得位址一致,可見兩者此時指向同意記憶體位址,當我們改變a得值時,b得值也會變化。引用示例 a 1 b a print id...