目录
前言
大家好,这里是果力成,话不多说,学之!
在python学习开发的过程中,我们难免会遇到从某个对象中抽取部分值的情况,对这种经常取指定索引的范围的操作,如果你使用循环的话是可以解决的,但是相对更好的方法而言,此操作是相当繁琐和费事的。
python中的 切片操作
正是专门用于完成这一操作的便捷有力方法.
切片的索引方式
Python可切片对象的索引方式包括:正索引和负索引。
如下图所示,以a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例:
------>从左向右 从右向左<------
正索引 | 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,9 |
---|---|
负索引 | -10, -9,-8,-7,-6,-5,-4,-3,-2,-1 |
值 | (起点)0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,9(终点) |
Python列表切片
Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组。
切片操作基本表达式:
object[start_index : end_index : step]
切片表达式包含两个":" ,用于分隔三个参数(start_index、end_index、step),当只有一个":"时,默认第三个参数step=1。
start_index:表示起始索引(包含该索引本身);该参数省略时,表示从对象’端点’开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。
end_index:表示终止索引(不包含该索引本身);该参数省略时,表示一直取到数据’端点’,至于是到’起点’还是到’终点’,同样由step参数的正负决定,step为正时直到’终点’,为负时直到’起点’。
step:(步长) , 正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,step为正表示“从左往右”取值,step为负表示“从右往左”取值。当step省略时,默认为1,即从左往右以增量1取值。
tips:切取方向非常重要~
列表(list)切片操作详例
注意看代码语句后的注释理解 |
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1.切取列表单个值
print(a[1])
print(a[-3])
output: 1
7
2.切取列表完整对象
print(a[:]) # 从左往右
print(a[: :]) # 从左往右
print(a[: : -1]) # 从右往左
output:
3.start_index和end_index都为正(+)索引
print(a[1:6])
# step=1,从左往右取值,start_index=1到end_index=6同样表示从左往右取值。
output : [1, 2, 3, 4, 5]
print(a[1: