python3中的切片操作

python中的切片非常方便,可以灵活的对list、tuple、string、range进行操作,得到想要的数据;

平时我们在访问序列中的元素,通过索引可以正向访问,也可以反向访问,切片同样也可以,下面举例我常用的操作方法:

切片的语法为:

[start_index,end_index,step]

start_index:起始索引位置

end_index:结束索引位置

step:步长

切片的功能:从起始位置到结束位置的前一个位置,按步长来提取数据并生成新的对象,并且不会改变原数据类型;

举例1,都写全:

L = [2,4,5,6,2,6,0,4]  #长度8

result = L[2:6:1]

print(result)

结果:[5,6,2,6]

可以看出,按步长1,从索引2开始,到索引6-1结束的所有元素

备注:以上的这些操作也同样适用于字符串或者元组中,对字符串进行反向显示,使用切片可以非常方便的做到;

举例2,省略步长:

L = [2,4,5,6,2,6,0,4]  #长度8

result = L[2:6]

print(result)

结果:[5,6,2,6]

可以看出,步长默认为1,可省略

举例3,开始索引省略:

L = [2,4,5,6,2,6,0,4]  #长度8

result = L[:5]

print(result)

结果:[2,4,5,6,2]

可以看出,按步长1,从第一个元素开始,到索引5-1结束的所有元素

举例4,结束索引省略:

L = [2,4,5,6,2,6,0,4]  #长度8

result = L[3:]

print(result)

结果:[6,2,6,0,4]

可以看出,按步长1,从索引3元素开始,到最后一个元素

举例5,开始、结束索引都省略:

L = [2,4,5,6,2,6,0,4]  #长度8

result = L[:]

print(result)

结果:[2,4,5,6,2,6,0,4]

可以看出,相当于从第一个到最后一个元素,复制了一个新的序列

举例6,步长非1但为正整数:

L = [2,4,5,6,2,6,0,4]  #长度8

result = L[2:6:2]

print(result)

结果:[5,2]

可以看出,按步长2,从索引2元素开始,到到索引6-1元素结束的所有元素

举例7,步长为负整数:

L = [2,4,5,6,2,6,0,4]  #长度8

result = L[-2:-7:-3]

print(result)

结果:[0,6]

可以看出,按步长2,从索引-2元素开始,到到索引-7+1元素结束的所有元素

备注:切片时一定要保证步和的方向与开始、结束的方向一致,否则可能会得到一个空序列

 

举例8,开始、结束省略,步长-1,可得到一个反向的序列:

L = [2,4,5,6,2,6,0,4]  #长度8

result = L[::-1]

print(result)

结果:[4, 0, 6, 2, 6, 5, 4, 2]

可以看出,开始、结束索引都省略,可以得到一个反向的序列

 

 

猜你喜欢

转载自www.cnblogs.com/banxiade/p/12638491.html