切片
切片的語法表示式為:[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...