切片操做就是對list,元組,字符串進行截取操做
有了切片操做,不少地方循環就再也不須要了
Python的切片很是靈活,一行代碼就能夠實現不少行循環才能完成的操做編程
使用示例:編程語言
List切片函數
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
正序切片spa
print(L[0:3]) #輸出:['Michael', 'Sarah', 'Tracy'] #L[0:3]表示,從索引0開始取,直到索引3爲止,但不包括索引3。即索引0,1,2,正好是3個元素
print(L[1:3]) #輸出:['Sarah', 'Tracy'], 也能夠從索引1開始,取出2個元素出來
倒序切片code
print(L[-2:-1]) #輸出:['Bob'] #倒數第一個元素的索引是-1,由於第二個索引是不包括的,因此Jack是不會被輸出的
省略索引blog
print(L[:3]) #輸出:['Michael', 'Sarah', 'Tracy'], 若是第一個索引是0,還能夠省略,實際執行L[0:3]
print(L[2:]) #輸出:['Tracy', 'Bob', 'Jack'] #實際執行L[2:len(L)+1],注意不是L[2:-1]
print(L[-2:]) #輸出:['Bob', 'Jack'], 實際執行L[-2:len(L)+1]
print(L[:-2]) #輸出:['Michael', 'Sarah', 'Tracy'], 實際執行L[0:-2] #切片的開始索引省略,則默認是0 #切片的結束索引省略,則默認是len(list)+1
其餘經常使用例索引
L = list(range(100)) print(L[:10]) #輸出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 前10個數 print(L[-10:]) #輸出:[90, 91, 92, 93, 94, 95, 96, 97, 98, 99], 後10個數 print(L[10:20]) #輸出:[10, 11, 12, 13, 14, 15, 16, 17, 18, 19], 前11-20個數 print(L[:10:2]) #輸出:[0, 2, 4, 6, 8], 前10個數,每兩個取一個 print(L[::5]) #輸出:[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95], 全部數,每5個取一個 print(L[:]) #輸出:[0, 1, 2, 3, ..., 99], 什麼都不寫,只寫[:]就能夠原樣複製一個list
元組切片字符串
tuple也是一種list,惟一區別是tuple不可變。所以,tuple也能夠用切片操做,只是操做的結果還是tuplestring
print((0, 1, 2, 3, 4, 5)[:3]) #輸出:(0, 1, 2)
字符串切片class
字符串'xxx'也能夠當作是一種list,每一個元素就是一個字符。所以,字符串也能夠用切片操做,只是操做結果還是字符串
在不少編程語言中,針對字符串提供了不少各類截取函數(例如,substring),其實目的就是對字符串切片
Python沒有針對字符串的截取函數,只須要切片一個操做就能夠完成,很是簡單
print('ABCDEFG'[:3]) #輸出:'ABC' print('ABCDEFG'[::2]) #輸出:'ACEG'