python中切片的淺複製探究
本文教程操作環境:windows7系統、Python 3.9.1,DELL G3電腦。
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("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]]
由於可見,將切片結果取出,它可以作為獨立物件使用,但是也要注意,是否取出了變長物件的元素。
以上就是python中切片的淺複製探究,相信大家對切片的複製方式已經有所明確。對於文章內容有不瞭解的地方,可以先複習一下基本概念。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2819/viewspace-2830782/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 列表切片陷阱:引用、複製與深複製Python
- python 的深淺複製Python
- python 淺複製、深複製坑Python
- python 深複製和淺複製Python
- python深複製和淺複製的區別Python
- 淺談JS中物件的淺複製和深複製JS物件
- JavaScript中的淺複製與深複製JavaScript
- Python列表的深淺複製Python
- 淺顯直白的Python深複製與淺複製區別說明Python
- Python中的賦值與淺複製與深複製之間的關係Python賦值
- C#中的物件深複製和淺複製C#物件
- 詳談Javascript中的深複製和淺複製JavaScript
- Java 中的深複製和淺複製你瞭解嗎?Java
- go的深複製跟淺複製Go
- python 深/淺複製及其區別Python
- 淺複製和深複製的概念與值複製和指標複製(引用複製)有關 淺複製 “指標複製 深複製 值複製指標
- Java引用複製、淺複製、深複製Java
- 淺複製與深複製
- JS物件複製:深複製和淺複製JS物件
- JavaScript 淺複製和深複製JavaScript
- 【編測編學】零基礎學python_11_列表(切片+遍歷切片+複製)Python
- GO語言————7.5 切片的複製與追加Go
- go slice深複製和淺複製Go
- (八)Redis 主從複製、切片叢集Redis
- 淺複製導致的bug
- js 淺拷貝(淺複製、淺克隆)、深拷貝(深複製、深克隆)JS
- Python面試必備一之迭代器、生成器、淺複製、深複製Python面試
- 【JavaScript】聊一聊js中的淺複製與深複製與手寫實現JavaScriptJS
- 談談Python中物件複製Python物件
- js 淺複製和深複製的區別和應用JS
- 對於複製普通物件 深複製和淺複製是否一樣物件
- Day 7.5 資料型別總結 + 複製 淺複製 深複製資料型別
- 25. 深淺複製
- python中的複製copy模組怎麼使用?Python
- 深淺複製,溫故知新
- python中list切片詳解Python
- 淺複製、深複製與序列化【初級Java必需理解的概念】Java
- 資料共享(淺複製)與資料獨立(深複製)