python 利器 python利器之切片

2021-10-20 01:40:25 字數 1677 閱讀 6655

切片

切片的語法表示式為:[start_index : end_index : step],其中:

start_index表示起始索引

end_index表示結束索引

step表示步長,步長不能為0,且預設值為1

切片操作是指按照步長,擷取從起始索引到結束索引,但不包含結束索引(也就是結束索引減1)的所有元素。

python3支援切片操作的資料型別有list、tuple、string、unicode、range

切片返回的結果型別與原物件型別一致

切片不會改變原物件,而是重新生成了乙個新的物件

下面列表為列:

圖列一乙個簡單的例子:

alist=['a','b','c','d','e','f']

①alist[0:4:1]

②alist[0:4]

結果:['a', 'b', 'c', 'd'] ①和②結果一樣,因為步長有預設值為1

alist[0:4:2]

結果:['a', 'c']

省略start_index,保留end_index,這樣會從第乙個元素開始,切到end_index - 1的元素為止

alist[:4]

['a', 'b', 'c', 'd']

保留start_index,但省略end_index,這樣會從起始索引開始,切到最後乙個元素為止:

alist[2:]

['c', 'd', 'e', 'f']

省略start_index、end_index和step,這樣就表示就表示切片整個序列,也就是複製出了乙個新的序列:

alist[:]

['a', 'b', 'c', 'd', 'e', 'f']

省略start_index、end_index,但保留step,表示對整個序列,按照步長整除的規則取值:

alist[::2]

['a', 'c', 'e']

此時,如果我們將步長設為-1,那麼就可以很方便的得到乙個反序的序列了:

alist[::-1]

['f', 'e', 'd', 'c', 'b', 'a']

下面這四種表示式是等價的:

alist[0:4]

['a', 'b', 'c', 'd']

alist[0:-2]

['a', 'b', 'c', 'd']

alist[-6:4]

['a', 'b', 'c', 'd']

alist[-6:-2]

['a', 'b', 'c', 'd']

觀察圖列一就可以得出,區間一致。

切片時,一定要保證start_index到end_index的方向與步長step的方向同向,否則會切出空的序列:

alist[0:4:-1]

alist[3:0:2]

利用切片功能,編寫乙個函式trim(str),類似python中的strip()功能——去除字串首尾的空格:

>>> def trim(str):

... while str[:1]==' ':

... str = str[1:]

... while str[-1:] == ' ':

... str = str[:-2]

... return str

>>> trim(' abc hh welcome! ')

'abc hh welcome!'

python利器 python利器去廣告版

軟體介紹 python利器是一款學習神器應用,全部都是免費使用的並且沒有任何的廣告,裡面的內容很詳細,資源也是相當的豐富,將c以及c 語言輕鬆的整合讓你可以更好的學習,裡面擁有python2 python3 python零基礎學習手冊django框架學習手冊和python100例等等,還有精選的資源...

Python必備利器Anaconda

anaconda是python的乙個包管理器又是乙個環境管理器,現在有python2.7和python3.5兩個版本,支援linux mac os,windows多平台。安裝了它,就相當於安裝了python ipython 整合開發環境spyder 一些包等等。anaconda python ipy...

Python除錯利器PDB

使用pdb的方式有兩種,其中一種是在指令碼中新增 不覺得這種方式比print好在 所以這種方式此文不表。這裡我們只學習pdb的命令列使用方式。1 進入命令列debug模式,python m pdb myscript.py 2 h help 幫助 3 w where 列印當前執行堆疊 4 d down...