前言
一开始不懂,然后google了一下.
满屏的”搞不明白”.
正文
所谓逆序截取,就是先截取,再进行逆序.
为什么不叫截取逆序?可能是因为”逆序截取”念着更顺嘴吧.
官方名字:Extended Slices
格式: str[begin:end:step]
str,字符串.
begin,起始位置.
end,结束位置.
step,间隔.s不等于0.默认为1
注:
区间为左闭右开.
step>0,表示从左往右.
step<0,表示从右往左.
例:
str = 'abcdefghijklmn'
每个字符的编号如下:
当step>0时,begin必须在end左边.
默认值
当step>0时,
begin默认为0
end默认为-1,且包含-1.即左闭右闭区间.
str[1:7:1]
解析:
begin=1
end=7
step=1
step>0,所以从左往右
区间为左闭右开,所以截取到的字符串为’bcdefg’.
因为step为1,所以,最后输出为:’bcdefg’
str[:11:2]
解析:
begin=0
end=11
step=2
step>0,所以从左往右
区间为左闭右开,所以截取到的字符串为’abcdefghijk’.
因为step为2,所以,最后输出为:’acegik’
str[-8:11:3]
解析:
begin=-8
end=11
step=3
step>0,所以从左往右
区间为左闭右开,所以截取到的字符串为’ghijk’.
因为step为3,所以,最后输出为:’gj’
当step<0时,begin必须在end右边.
默认值
当step<0时,
begin默认为-1
end默认为0,且包含0.即左闭右闭区间.
str[:-11:-1]
解析:
begin=-1
end=-11
step=-1
step<0,所以从右向左
区间为左闭右开,所以截取到的字符串为’nmlkjihgfe’.
因为step为1,所以,最后输出为:’nmlkjihgfe’
str[-3::-4]
解析:
begin=-3
end=0
step=-4
step<0,所以从右向左
区间为左闭右闭,所以截取到的字符串为’lkjihgfedcba’.
因为step为4,所以,最后输出为:’lhd’
str[::-1]
解析:
begin=-1
end=0
step=-1
step<0,所以从右向左
区间为左闭右闭,所以截取到的字符串为’nmlkjihgfedcba’.
因为step为1,所以,最后输出为:’nmlkjihgfedcba’
该命令就是所谓的逆序.
练习
请写出以下命令的输出
str = '0123456789'
str[:-1:2]
str[:0:-3]
str[-8:8:2]
str[-2:2:-2]
str[:-1:]
str[::]
str[-2::-1]