取一個list或tuple的部分元素是很是常見的操做。對於這種常常指定索引範圍的操做,用循環十分繁瑣,所以,Python提供了切片(Slice)操做符,能大大簡化這種操做。編程
>>> L = list(range(20)) >>> L [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] # 取前10個數 >>> L[:10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 取後10個數,記住倒數第一個元素的索引是-1 >>> L[-10:] [10, 11, 12, 13, 14, 15, 16, 17, 18, 19] # 取前10-15個數 >>> L[10:15] [10, 11, 12, 13, 14] # 前10個數,每兩個取一個 >>> L[:10:2] [0, 2, 4, 6, 8] # 全部數,每5個取一個 >>> L[::5] [0, 5, 10, 15] # 什麼都不寫,只寫[:]就能夠原樣複製一個list >>> L[:] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>> # tuple也能夠用切片操做,只是操做的結果還是tuple >>> (0, 1, 2, 3, 4, 5)[:3] (0, 1, 2) >>> >>> # 字符串也能夠當作是一種list,每一個元素就是一個字符。所以,字符串也能夠用切片操做 # 在不少編程語言中,針對字符串提供了不少各類截取函數(例如substring),其實目的就是對字符串切片。Python沒有針對字符串的截取函數,只須要切片一個操做就能夠完成 >>> 'ABCDEFG'[:3] 'ABC' >>> 'ABCDEFG'[::2] 'ACEG'