python中slice操作的完整語法:
#i預設是0
#j預設是len(s)
#k的步長,預設為+1
s[i:j:k]
其中i,j,k都可以是負數:
若i < 0或者k<0,等價於len(s) + i,或者len(s) + j;
若k < 0,則表示將[i,k)之間的字元按照步長k,從右往左數,而不是從左往右數
>>>s = 'abcdefg
'>>>s[-3:-1]'ef
'>>>s[-1:-3:-1] #
將位於s[-1:-3]的字元子串,按照步長1,從右往左數,而不是從左往右數'gf
'>>>s[4:2:-1]'ed
'>>>s[2:4:-1] #
輸出空字串
''>>>s[::-1] #逆序'
gfedcba
'
需要指出的是s[i:j:k]的形式,等價於下面的形式:
>>>s = 'abcdefg
'>>>s[slice(none, none, -1)] #
等價於使用slice物件進行陣列元素的訪問操作
'gfedcba
'
python 中的內建函式slice
slice 函式是乙個切片函式,可以作用於list,tuple,numpy等結構,其作用類似於列表中常見的切片操作,但是如果按照某個長度將list等可以用於切片的序列做等分,一般可以用乙個迴圈可以實現。l 1,2,3,4,5,6,7,8,9,10 i 0 while i 10 print l i i...
python的切片(Slice)操作符
l michael sarah tracy bob jack l 0 3 從索引0開始擷取,擷取到第三個元素,即索引為2的元素 michael sarah tracy l 3 前面的0可以省略 michael sarah tracy 支援倒序擷取 從倒數第乙個擷取到倒數第二個,不包括索引為 1的元素...
理解Go中的slice
最近閒來無事,深入研究了slice在golang中的實現並簡要閱讀了其相關的底層實現 後,對於實際工作中的一些slice相關 的寫法與bug有了一種豁然開朗的感覺。故記錄下來,與君分享。陣列 vs 切片 對於初學者來說,我們必須分清楚陣列與切片的區別。在go中,陣列與其他語言並無太大區別,都是一段指...