一、切片的定义:
切片是用于切割可迭代对象(容器)的一种操作方法。
注意:切片操作并不是把原容器进行修改,而是返回的一个新容器或是获取原容器中的某个单值。
二、切片的两种基本用途:
1、切割对象获取单个元素值。
2、切割完整对象获取新容器。
eg:
ls = [1,2,3,4,5,6]
#切割对象获取单个元素值
#[ ]中给出对应元素角标即可
ls1 = ls[2]
#切割完整对象获取新容器
ls2 = ls[1,5,1]
三、切片的书写形式(格式)、具体含义、及其书写原则:
1、切片的书写形式(格式):
一个完整(具体)的切片形式是包含一个中括号([ ]),两个冒号(:),三个参数(可为正负整数,结果为整数的表达式)。当然根据具体的使用情况也可以对冒号和参数进行省略。
格式:容器[参数1:参数2:参数3]
eg:
ls = [1,2,3,4,5,6]
ls[1,5,1]
ls[5:1:-1]
ls[1::-1]
ls[2 + 1:11 % 2:1 * 2]
2、具体含义:
(1)冒号:
冒号是用于间隔参数的。
(2)参数:
参数1与参数2是用于确定切割范围的(参数1为始范围,参数2为末范围,且范围为左闭右开),参数3是用于切割步长的(切割步长就是每隔几步割取一个值,eg:参数3为2就是取完范围的起始值后每隔一个值再割取一个值)。
3、书写原则:
(1)整数原则:
无论正负,或是用表达式作参数,其值只能为整数。
(2)省略原则:
一般情况下,我们在省略书写切片操作时为区分参数不省略第一个冒号,如果只有一个冒号,系统会默认其为第一个冒号进而对参数进行判定。
一般情况下,省略确定范围的参数时系统会根据当前情况补边界值,而省略确定步长的参数时系统只会补“1”.
(3)方向一致原则:取范围的方向要与步长方向一致。
注意:
取范围的方向要与步长方向不一致时(参数取值发生冲突时),系统不会报错但会返回空容器。
’ 取范围时超过下标,系统也不会报错,系统会更改为边界值。
四、依据参数情况我将切片又分为这几类:
ls = [1,2,3,4,5,6]
#依据参数情况我将切片又分为这几类
#正向切割
ls2 = ls[1:4:1]
ls[-5:-1:1]
ls[1:-1:1]
ls[-5:5:1]
ls[1::1]
ls[:5:1]
ls[1:5]
#逆向切割
ls[5:1:-1]
ls[-1:-5:-1]
ls[5:-5:-1]
ls[-1:1:-1]
ls[1::-1]
ls[:-1:-1]
#省略切割
ls[1::-1]
ls[1::1]
ls[:-1:-1]
ls[:5:1]
ls[1:5]
#表达式切割
ls[2 + 1:11 % 2:1 * 2]
五、连续切片:
类似于嵌套使用切片
eg:
ls = [1,2,3,4,5,6,7,8,9]
ls1 = ls[:6:1][1::1][2:4:1]
print(ls1)
输出为:[4,5]
六、与for循环中的range方法配用:
fange方法也确定了一个容器,同样也可以对该容器进行切片操作。
格式:range(参1,参2,参3)[参1:参2:参3]
eg:
for i in range(1,5,1)[1:4:1]:
循环体