当我们需要获取列表或者元组的部分元素时,我们可能会用到切片特性。
对于一个列表:
l=[0,1,2,3,4,5,6,7,8,9]
如果我们要取前两个元素,我们通常会使用:
>>>l[0],l[1]
但是当元素特别多,我们需要取连续n个元素时,这个方法就很不方便了。
当然,也有人想到使用循环的方式:
l_tmp=[]
n=100
for i in range(50,150):
l_tmp.append(l[i])
这种操作函数略显麻烦,不过幸运的时,python为我们提供了切片的方法来实现此等问题。
我们通过一个小例子来讲解切片的使用方法。
# -*- coding:utf-8 -*-
#列表
l=[0,1,2,3,4,5,6,7,8,9]
#元组
t=(0,1,2,3,4,5,6,7,8,9)
#字符串
s='abcdefghijk'
#表示从索引0开始,到索引5为止,且不包括索引5
print(l[0:5]) #输出[0,1,2,3,4]
#若从索引0开始,则0可以省略
print(l[:5]) #输出[0,1,2,3,4]
#可以从任意的索引开始
print(l[4:7]) #输出[4,5,6]
#也可支持负数,表示倒数第三个索引至最后
print(l[-3:]) #输出[7,8,9]
#表示倒数第三个索引至倒数第一个索引
print(l[-3:-1]) #输出[7,8]
#还可支持一个步长,表示索引2到索引8中,每隔2取一个值
print(l[2:8:2]) #输出[2,4,6]
#索引省略表示所有值每两个取一个值
print(l[::2]) #输出[0,2,4,6,8]
#都省略表示原样复制一个list
print(l[:]) #输出[0,1,2,3,4,5,6,7,8,9]
#元组也支持切片,返回另一个元组
print(t[:5]) #输出(0,1,2,3,4)
#字符串也支持切片,结果为一个字符串
print(s[1::2]) #输出'bdfhj'