列表分片
Python 中的分片
Python 中使用索引来访问序列中的某一个元素,如果要访问序列中某一定范围内的元素,可以使用分片来完成。
分片操作是通过由冒号相隔的两个索引号来实现的:sequence[indexStart : indexEnd]
分片操作后返回一个新的 list 列表 我们可以通过变量来接收这个列表值
示例如下:
numbers = [5, 1, -2, 67, 10, 23, 100]
print('numbers[2 : 4] :',numbers[2 : 4]) ##等同于list2 = numbers[2 : 4] print('numbers[2 : 4] :',list2)
print('numbers[2: -3] :',numbers[2: -3])
print('numbers[0:6:2] :',numbers[0:6:2]) #可以加上步长下面会讲到
输出结果:
numbers[2 : 4] : [-2, 67]
numbers[2: -3] : [-2, 67]
numbers[0:6:2] : [5, -2, 10]
分片操作其实就是按照一定的顺序访问序列中某一范围内的元素分片操作可以表示为:
sequence[indexStart : indexEnd : stride]
按步长 stride 从序列 sequence 中取出从 indexStart 开始到 indexEnd 终止范围内的元素组成一个新的序列
indexStart: 起始索引号,它的值可以是正的也可以是负的,它所对应的元素会加入到新的序列中;该索引号指的是原始序列中的索引号,而不是新序列中的索引号
indexEnd: 终止索引号,它的值可以是正的也可以是负的,它所对应的元素不会加入到新的序列中;该索引号指的是原始序列中的索引号,而不是新序列中的索引号
stride: 步长,它的值可以是正的也可以是负的,可以省略,省略时使用默认步长,默认步长为正 1
indexStart 可以省略,省略时,若 stride 为正的,则表示序列的首个元素;若 stride 为负的,则表示序列的最后一个元素
indexEnd 也可以省略,省略时,若 stride 为正的,则表示序列的最后一个元素;若 stride 为负的,则表示序列的首个元素
记住一点就行了,那就是在一定的访问顺序中,indexStart所对应的元素必须先于indexEnd所对应的元素被访问到,否则,分片操作返回的就是空的序列;
具体来说,就是先看访问顺序,其实就是先看步长,因访问顺序是由步长来决定的,
当步长为正时:按从原始序列 sequence 的头部(从左)到尾部(到右)的顺序访问序列中的元素,indexStart 在原始序列 sequence 中所对应的元素必须出现在 indexEnd 所对应的元素的左边
当步长为负时:按从原始序列 sequence 的尾部(从右)到头部(到左)的顺序访问序列中的元素,indexStart 在原始序列 sequence 中所对应的元素必须出现在 indexEnd 所对应的元素的右边
示例如下:
numbers = [5, 1, -2, 67, 10, 23, 100]
print(numbers[5:2:-1])
print(numbers[0:5:2])
print(numbers[3:3])
print(numbers[-2:4:-1])
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于