python切片詳解

來源:互聯網
上載者:User

標籤:經典   傳回值   結束   ons   range   返回   end   切片   之間   

先從原理上分析切片運算:

list的切片,內部是調用__getitem__,__setitem__,__delitem__和slice函數。而slice函數又是和range()函數相關的。

給切片傳遞的鍵是一個特殊的slice對象。該對象擁有可描述所請求切片方位的屬性,例如:

1234 a = [ 123456 ]x = a [ 1 5 ] #  x = a.__getitem__( slice ( 15, None ) )a [ 1 3 ] = [101112 ]#  a.__setitem__( slice ( 13, None ), [ 101112 ] )del a [ 1 4 ]#  a.__delitem__( slice ( 14, None ) )

Python 的切片功能實際上比很多程式員認為的更強大。

1 = m [ 0 100 10 ]  #  帶步進的切片(步進值=10)

注意:步進值為step

當step > 0 時

切片從 start(含start)處開始,到end(不含end)處結束,**從左往右**,每隔(step-1)(索引之間的差仍為step,但相隔的元素是step-1個)個元素進行一次截取。

這時,start 指向的位置應該在end指向的位置的左邊,否則傳回值為空白

 

當step < 0 時

切片從 start(含start)處開始,到end(不含end)處結束,**從右往左**,每隔(step-1)(索引之間的差仍為step,但相隔的元素是step-1個)個元素進行一次截取。

這時,start 指向的位置應該在end指向的位置的右邊,否則傳回值為空白

 

有一個經典應用是:翻轉字串

比如:

12 >>> str=‘pythontab.com‘>>> str[::-1]

結果為:

‘moc.batnohtyp‘

 

切片邊界問題

 

執行個體:

123456 s=[1,2,3,4]       # S 上界為 0 下界為 4s[-100:100]       #返回 [1,2,3,4] -100超出了上界,100超出了下界:等價於 s[0:4]s[-100:-200]      #返回 [] -100,-200均超出了上界,自動取上界:等價於s[0:0]s[100:200]        #返回 [] 100,200均超出了下界,自動取下界值:等價於s[4:4]s[:100]           #返回 [1,2,3,4] 開始值省略表示從第0個開始s[0:]             #返回 [1,2,3,4] 結束值為空白表示到最後一個結束

注意:我使用的python版本為python2.7,python的切片存在版本相容問題。在python3中有更加進階的功能和用法,在使用時一定要注意自己的python版本。

 

python切片詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.