取一个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'