1、切片的基本表达式
object[start_index:end_index:step]
- start_index:想要截取的开始位置
- end_index:想要截取的结束位置
- step:步长,可为正可为负(默认为1)
[start_index:end_index:step]区间为左闭右开区间,在写的时候可以忽略 start 和 end 也可以忽略step,可根据自己的需求进行组合。
2、示例
#示例1
str = "abcdefghijk"
print(str[0:9:1])#从下标为0的开始,在第九个字母结束,步长为1
print(str[2])#省略了end和step
print(str[2::1])#省略了end
print(str[2:5])#省略了step
print(str[::])
#运行结果:
abcdefghi
c
cdefghijk
cde
abcdefghijk
#示例2:
list = [1, 2, 3, 4, 5, 6]
print(list[0:6:1])
print(list[4])
#运行结果:
[1, 2, 3, 4, 5, 6]
5
#示例3:
str = "abcdefghijk"
print(str[0:9:-1])
print(str[5:-10:1])
#运行结果:
Process finished with exit code 0
示例3没有运行结果,其原因与step的正负有关,还与star和end的位置有关。
当step为正的时候,截取方向是从左到右截取,当step为负的时候,截取方向是从右到左截取,当star在end之前的时候可以截取成功(类似从起点跑向终点);当start在end之后则截取不到(一出发就是end,还未开始就结束)。
3、其他用法
1.元素插入
>>> a = [1, 2, 3, 4, 5, 6,7]
>>> a[3:3] = [8,8]
>>> a
[1, 2, 3, 8, 8, 4, 5, 6, 7]
2.修改单个元素
>>> a[3] = 7
>>> a
[1, 2, 3, 7, 8, 4, 5, 6, 7]
3.元素替换
>>> a[3:7] = [4,5]
>>> a
[1, 2, 3, 4, 5]
4、小结:
如果还是有点迷惑可以参考以下步骤来尝试一下!
1、先确定step是正还是负,为正的话是从左到右进行截取,为负则是从右到左。
2、再确定start和end的位置,start在截取方向上要处于end之前,如果start在end之后则截取不到。
3、确定step步长。