Python基础学习第四天,切片

98 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

切片的介绍

在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。 普通索引只取出序列中 一个下标 对应的元素,而切片取出序列中 一个范围 对应的元素,这里的范围不是狭义上的连续片段。通俗一点就是在一定范围里面.用刀切出一部分,达到自己需要的一部分.

一、切片的索引方式

正索引反索引
10-9
21-8
32-7
43-6
54-5
65-4
76-3
87-2
98-1

二、索引的一般形式

一个完整的切片是包含三个参数和两个冒号" : " ,用于分隔三个参数(start_index、end_index、step)。

当只有一个“:”时,默认第三个参数step=1;

当一个“:”也没有时,start_index=end_index,表示切取start_index指定的那个元素。

一般形式:变量[start : end :step]
start : 起始位置
end : 结束位置
step : 步长

ps:end部分不取,相当于数学中的开区间,即 [ start , end ) 。

三、切片的具体切法

1.切出单个值

spl_lis  = [1,2,3,4,5]
print(spl_lis [0])
image.png

2.切完整对象

spl_lis  = [1,2,3,4,5]
print(spl_lis [:])
print(spl_lis[::])
# 上述两种方式,效果一致,都是将spl_lis遍历一遍,step默认为1
print(spl_lis[::-1])
# step步长设置为-1,即从最后一项开始向初始项遍历

image.png

3.切对象的部分

spl_lis  = [1,2,3,4,5]
print(spl_lis [2:4:])
# step步长未写默认为1,从正索引的二开始遍历到正索引四前一项,即从第3项开始遍历到第4项
print(spl_lis [1:-1:])
# step步长未写默认为1,从正索引的一开始遍历到负索引的第一项的前一项,即从第2项开始遍历到第4项
print(spl_lis [-1:1:-1])
# step步长设置为-1,即从最后一项开始向初始项遍历。
# 从负索引一开始遍历到正索引一,即从第5项遍历到第2项的后一项。

image.png

4.切片嵌套

spl_lis = [1,2,3,4,5,6,7,8,9,0]
print(spl_lis[:5][:])
# 嵌套的情况就从左往右看,即先看spl_lis[:5]后,再将spl_lis[:5]看作整体进行切片
# 先上一个简单的情况
# 首先是spl_lis[:5],从初始项开始遍历到索引五前一项,即从第1项遍历至第5项
# [:] 即 遍历spl_lis[:5]全部
print(spl_lis[:5][:2])
# 首先是spl_lis[:5],从初始项开始遍历到索引五前一项,即从第1项遍历至第5项
# 再是将spl_lis[:5]进行[:2]的切片,即从第1项遍历到第2

image.png

总结

Python切片是十分便捷且充满创造性的操作。易于理解但又有很多操作的空间,所以这个有必要重视起来。