Python的切片操作

当我们需要获取列表或者元组的部分元素时,我们可能会用到切片特性。

对于一个列表:

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'

参考
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868196352269f28f1f00aee485ea27e3c4e47f12bc7000

猜你喜欢

转载自blog.csdn.net/dxk_093812/article/details/83744175