列表巢狀
如果想拷貝之後賦值的變數不想影響之前的列
表變數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))
print("b的初始值為: " + str(b))
print("*****=b的引用*****===")
print("以下做修改b變數引用的a的子集操作")
b[1][0]="b"
print("修改b變數引用的a的子集後的a的值"+ str(a))
print("修改b變數引用的b的值"+ str(b))
print("*****=淺拷貝*****===")
c=b.copy()
print("變數a的值為:"+ str(a))
print("淺拷貝c的值:"+ str(c))
print("*****=深拷貝*****===")
d=copy.deepcopy(b)
print("變數a的值為:"+ str(a))
print("深拷貝c的值:"+ str(d))
a的初始值為: [1, 2, 3]
b的初始值為: ['a', [1, 2, 3]]
*****=b的引用*****===
以下做修改b變數引用的a的子集操作
修改b變數引用的a的子集後的a的值['b', 2, 3]
修改b變數引用的b的值['a', ['b', 2, 3]]
*****=淺拷貝*****===
變數a的值為:['b', 2, 3]
淺拷貝c的值:['a', ['b', 2, 3]]
*****=深拷貝*****===
變數a的值為:['b', 2, 3]
深拷貝c的值:['a', ['b', 2, 3]]
python 引用,淺拷貝,深拷貝
引用 當物件是不可變型別的時候,int float double string tuple 純tuple 遇到 引用 問題時,雖然起初兩個變數指向同乙個記憶體位址,但是改變了其中乙個值,並不會影響另外乙個 會重新開闢記憶體位址 當物件是可變型別的時候,list dic,遇到 引用 問題,會一直共享一...
Python引用 淺拷貝 深拷貝
1 概念 深拷貝 將父和子的值都進行傳遞,無論怎麼去修改源變數,深拷貝的變數都和源變數無關 2 引用 我們建立乙個變數a,通過引用將a賦值給變數b,使用id 檢視變數位址,a與b得位址一致,可見兩者此時指向同意記憶體位址,當我們改變a得值時,b得值也會變化。引用示例 a 1 b a print id...
Python 引用 淺拷貝 深拷貝解析
1 的作用。僅僅是位址的引用,當原列表或者新列表中任意元素改變,均會對另外乙個產生影響 引用 本例中屬於位址的引用,其中a和b共用同一塊記憶體 當修改共用記憶體中的任意的內容是時,均會影響到另外的內容 a 0,1,2,3,4 b a 修改a 0 後,a 0 和b 0 都會改變 a 0 10 prin...