当我们建立一个list之后我们如果想要从里面取出东西的话呢我们需要使用L[0]来取出东西,然而这种取法是只能取很少的东西,如果我们需要去前n个数的时候,我们就只能用循环来实现,然而这个时候呢我们的取法就会很麻烦,但是在python当中他们已经给我们提供了一种方法,那就是切片(slice)。
>>> L = ['Adam','Lisa','Bart','Paul'] >>> L[0:3] ['Adam', 'Lisa', 'Bart'] >>> L[:3] ['Adam', 'Lisa', 'Bart'] >>> L[1:3] ['Lisa', 'Bart'] >>> L[:] ['Adam', 'Lisa', 'Bart', 'Paul'] >>> L[::2] ['Adam', 'Bart']
这里面我们可以看到,如果我们想要从头开始取的话呢,我们只需要写出L[0:]就好了,当然了,如果哦我们不需要从头开始取的话呢,我们就只要写上我们需要开始取得元素所在索引号就好了。
如果我们想要取全部的元素的话呢:我们就可以使用L[:]来全部取出了。
在上面我们还能看到我们的切片不止有两个参数,我们还有三个参数,第三个参数指定的是每隔两个去一个元素。
切片不止是list的特有功能,tuple也同样具有这种功能。
切片我们不止有正序切片,还有倒序切片,但是第一个元素的切片的索引号是-1:
>>> L[-3:-1] ['Lisa', 'Bart'] >>> L[:-1] ['Adam', 'Lisa', 'Bart'] >>> L[-3:] ['Lisa', 'Bart', 'Paul']
字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:
>>> 'ABCDEFG'[:3] 'ABC' >>> 'ABCDEFG'[-3:] 'EFG' >>> 'ABCDEFG'[::2] 'ACEG'
在很多编程语言中,针对字符串提供了很多各种截取函数,其实目的就是对字符串切片。Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。