python之切片

当我们建立一个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没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。

原文地址:https://www.cnblogs.com/chang1203/p/5837205.html