python中切片操作的详细用法

在Python中,切片操作是用于从序列(例如字符串、列表、元组等)中提取子序列的一种灵活且常见的方式。切片的基本语法是 start:stop:step,其中:

start: 起始索引,表示切片开始的位置。默认为序列的开头(索引0)。

stop: 结束索引,表示切片结束的位置。注意,实际取到的是索引值为 stop-1 的元素。默认为序列的末尾。

step: 步长,表示从起始索引到结束索引的间隔。默认为1。使用负数表示逆向遍历。

下面是一些常见用法的例子:

1 基本切片:

sequence[start:stop]

提取从 start 到 stop-1 的子序列。

2 带步长的切片:

sequence[start:stop:step]

提取从 start 到 stop-1 的子序列,以 step 为步长。

3 省略起始或结束索引:

sequence[:stop] # 从开头到 stop-1

sequence[start:] # 从 start 到末尾

如果省略 start,表示从序列的开头开始;如果省略 stop,表示直到序列的末尾。

4 逆向遍历:

sequence[::-1] # 逆向遍历整个序列

切片操作适用于字符串、列表、元组等序列类型。在实际应用中,切片非常方便,可以用于提取子序列、反转序列、跳跃性遍历等多种操作。

样例

你的代码中,sub_list 试图通过切片从 my_list 中创建一个子列表,但在切片索引上有一个错误。让我们来分析一下:

1 my_list = [1, 2, 3, 4, 5]
2 sub_list = my_list[-3:-3]
3 print(sub_list)

 

 输出:[]

这里,my_list[-3:-3] 尝试从索引为 -3 的元素开始,到索引为 -3 的元素结束(意思就是说不包括这个位置所在的元素),但这个范围是空的,因为它不包含任何元素。

如果你想要获取从倒数第三个元素开始一直到列表末尾的子列表,你应该省略第二个索引:

my_list = [1, 2, 3, 4, 5]
sub_list = my_list[-3:-1:2]
print(sub_list) 

输出:[3]

从倒数第三个到倒数第一个(不包括这个  是指在这个地方结束)但是步长是2所以就只能输出3

如果我们还是这段代码但是把步长设置为-1,而由于-3到-1是正向的而设置的步长-1是逆向的所以输出的就是空的

my_list = [1, 2, 3, 4, 5]
sub_list = my_list[1:-1:1]
print(sub_list) 

输出:[2, 3, 4]

对于左边来说索引相当于是从0开始的  也就是说第0个是1,第一个就是2,-1代表的是5但是不包括它,同时步长又是1所以输出此

 

posted @ 2023-11-22 17:35  wakappxc  阅读(175)  评论(0编辑  收藏  举报  来源