新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python中切片的淺拷貝探究
本文教程操作環(huán)境:windows7系統(tǒng)、python 3.9.1,DELL G3電腦。

創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供西云機房 四川大帶寬租用 成都機柜租用 成都服務(wù)器租用。
1、淺拷貝說明
淺拷貝,拷貝了最外圍的對象本身,內(nèi)部的元素都只是拷貝了一個引用而已。也就是,把對象復(fù)制一遍,但是該對象中引用的其他對象我不復(fù)制。
2、切片拷貝實例
切片操作的返回結(jié)果是一個新的獨立的序列。以列表為例,列表切片后得到的還是一個列表,占用新的內(nèi)存地址。
當(dāng)取出切片的結(jié)果時,它是一個獨立對象,因此,可以將其用于賦值操作,也可以用于其它傳遞值的場景。但是,切片只是淺拷貝,它拷貝的是原列表中元素的引用,所以,當(dāng)存在變長對象的元素時,新列表將受制于原列表。
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]
# 下例等價于判斷l(xiāng)i長度是否大于8
if(li[8:]):
print("not empty")
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]]由于可見,將切片結(jié)果取出,它可以作為獨立對象使用,但是也要注意,是否取出了變長對象的元素。
以上就是python中切片的淺拷貝探究,相信大家對切片的復(fù)制方式已經(jīng)有所明確。對于文章內(nèi)容有不了解的地方,可以先復(fù)習(xí)一下基本概念。
本文標(biāo)題:創(chuàng)新互聯(lián)Python教程:python中切片的淺拷貝探究
路徑分享:http://www.fisionsoft.com.cn/article/cdsiegs.html


咨詢
建站咨詢
