python中切片的淺拷貝探究
python中切片的淺拷貝探究
本文教程操作環境:windows7系統、Python3.9.1,DELLG3電腦。
1、淺拷貝說明
淺拷貝,拷貝了最外圍的對象本身,內部的元素都只是拷貝了一個引用而已。也就是,把對象復制一遍,但是該對象中引用的其他對象我不復制。
2、切片拷貝實例
切片操作的返回結果是一個新的獨立的序列。以列表為例,列表切片后得到的還是一個列表,占用新的內存地址。
當取出切片的結果時,它是一個獨立對象,因此,可以將其用于賦值操作,也可以用于其它傳遞值的場景。但是,切片只是淺拷貝,它拷貝的是原列表中元素的引用,所以,當存在變長對象的元素時,新列表將受制于原列表。
li=[1,2,3,4]
ls=li[::]
li==ls#True
id(li)==id(ls)#False
li.append(li[2:4])#[1,2,3,4,[3,4]]
ls.extend(ls[2:4])#[1,2,3,4,3,4]
#下例等價于判斷li長度是否大于8
if(li[8:]):
print("notempty")
else:
print("empty")
#切片列表受制于原列表
lo=[1,[1,1],2,3]
lp=lo[:2]#[1,[1,1]]
lo[1].append(1)#[1,[1,1,1],2,3]
lp#[1,[1,1,1]]
由于可見,將切片結果取出,它可以作為獨立對象使用,但是也要注意,是否取出了變長對象的元素。
以上就是python中切片的淺拷貝探究,相信大家對切片的復制方式已經有所明確。對于文章內容有不了解的地方,可以先復習一下基本概念。更多Python學習教程請關注IT培訓機構:千鋒教育。

相關推薦HOT
更多>>
pythonfor循環是什么
pythonfor循環是什么在做遍歷的時候,對于一些數據的反復循環執行,我們會用到for循環的語句。可以說這是新手入門必學的語句之一,在很多基礎循...詳情>>
2023-11-13 07:46:36
pythoncontextmanager()的轉換
python中contextmanager()的轉換1、說明當發出請求時,requests庫會在將請求實際發送到目標服務器之前準備該請求。請求準備包括像驗證頭信息和...詳情>>
2023-11-13 06:34:35
python使用items()遍歷鍵值對
python使用items()遍歷鍵值對字典可以用來存儲各種方式的信息,所以有很多方式可以通過字典的所有鍵值對、鍵或值。說明1、即使通過字典,鍵值對...詳情>>
2023-11-13 04:24:15
python實例方法中self的作用
python實例方法中self的作用說明1、無論是創建類的構造方法還是實例方法,最少要包含一個參數self。2、通過實例的self參數與對象進行綁定,程序...詳情>>
2023-11-13 03:46:48