本文目錄一覽:
徹底搞懂python序列的切片操作
切片是python極其有用且強大的功能。它使我們能夠使用簡單明了的語法來操作序列,包括字符串、列表、元組。切片簡單來說就是從序列中切取咱們需要的值,並生成一個新的序列,理論上來說,只要表達式正確,我們可以通過切片切取序列中的任意值。
如果沒有缺省的話,表達式應該包含三個參數以及兩個冒號,三個參數的意義分別如下:
1、start_index:切片的起始位置( 包括該位置 ),0表示從第一個開始,1表示從第二個開始,以此類推。-1表示從倒數第一個開始,-2表示從倒數第二個開始,以此類推。 缺省時取0或-1(即step為正數取0,負數取-1)
2、end_index:切片的結束位置( !!!且不包括該位置 ),0表示第一個為終點,1表示第二個為終點,以此類推。-1表示倒數第一個為終點,-2表示倒數第二個為終點,以此類推。 缺省時默認為序列長度(step為正數取正,step負數取負)
3、step,表示步長。可取正負數,正數表示從左往右,負數表示從右往左。 缺省時取1
組合使用
只有一個冒號時默認step為1。當start_index的位置在end_index的左邊時,表示從左往右取值;當start_index的位置在end_index的右邊時,表示從右往左取值
特殊情況
連續切片操作
按照順序進行切片即可
其他序列的切片
python常用切片操作
start:表示切片的開始索引位置(包括該位置),此參數也可以不指定,會默認為 0,也就是從序列的開頭進行切片;
end:表示切片的結束索引位置(不包括該位置),如果不指定,則默認為序列的長度;
step:表示在切片過程中,隔幾個存儲位置(包含當前位置)取一次元素,也就是說,如果 step 的值大於1則在進行切片去序列元素時,會“跳躍式”的取元素。如果省略設置 step 的值,則最後一個冒號就可以省略。
python切片是什麼
python切片是什麼?
切片是指對操作的對象取出一部分的概念
字符串、列表、元組都支持切片語法
切片的語法為 [ 起始 : 結束 : 步長]
這裡注意:選取的區間為左閉右開,即包括起始位置,不包括結束位置
1 字符串切片
以上就是小編分享的關於python切片是什麼的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
書聲琅琅教育:什麼是Python切片?
Python中符合序列的有序序列都支持切片(slice),如:列表,字符,元祖
Python中切片的格式:[start : end : step]
Start:起始索引,從0開始,-1表示結束;End:結束索引;Step:步長
end-start=正數時,從左向右取值,=負數時反向取值
注意:切片結果不包含結束索引,即不包含最後一位,-1代表最後一個位置索引
了解更多python知識,0基礎新手python在線學習就上智圭谷-書聲琅琅教育旗下高端IT教育品牌,專註python語言領域
go和python切片的不同
go有切片slice類型,python有列表和元組,這兩種語言都有切片操作。
但是它們的切片操作是完全不同的。
首先說第一個,go的切片,其成員是相同類型的,python的列表和元組則不限制類型。
兩種語言都有[a:b]這種切片操作,意義也類似,但是go的a、b兩個參數不能是負數,python可以是負數,此時就相當於從末尾往前數。
兩種語言都有[a:b:c]這種切片操作,意義卻是完全不同的。go的c,表示的是容量;而python的c表示的是步長。
但是最大的不同,還是:
python的切片產生的是新的對象,對新對象的成員的操作不影響舊對象;go的切片產生的是舊對象一部分的引用,對其成員的操作會影響舊對象。
究其原因,還是底層實現的不同。
go的切片,底層是一個三元組,一個指針,一個長度,一個容量。指針指向一塊連續的內存,長度是已有成員數,容量是最大成員數。切片時,一般並不會申請新的內存,而是對原指針進行移動,然後和新的長度、容量組成一個切片類型值返回。也就是說,go的切片操作通常會和生成該切片的切片共用內存。
不僅是切片,字符串、數組的切片也是一樣的,通常會共用內存。
當然也有異常情況,那就是切片時,提供的容量過大,此時會申請新內存並拷貝;或者對切片append超出容量,也會如此。這時,新的切片,才不會和老切片共享內存。(如果你切片/創建時提供的容量小於長度,會panic)
python的列表,其實是個指針數組。當然在下層也會提供一些空位之類的,但基本就是個數組。對它們切片,會創建新的數組,注意,是創建新的數組!python的列表可沒有容量的概念。
這其實也體現了腳本語言和編譯語言的不同。雖然兩個語言都有類似的切片操作;但是python主要目標是方便;go主要目標卻是快速(並彌補丟棄指針運算的缺陷)。 a
原創文章,作者:VQYKW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130049.html