切片的书写形式:[i : i+n : m] ;其中,i 是切片的起始索引值,为列表首位时可省略;i+n 是切片的结束位置,为列表末位时可省略;m 可以不提供,默认值是1,不允许为0 ,当m为负数时,列表翻转。注意:这些值都可以大于列表长度,不会报越界。
切片的基本含义是:从序列的第i位索引起,向右取到后n位元素为止,按m间隔过滤 。
可以参考博客:http://www.php.cn/python-tutorials-414090.html
切片操作其他的都比较好理解,但是当m为负时我有点蒙。看下面的例子:
class Solution:
def test(self,x:int)->bool:
t=str(x)
t3=t[4:-1:1]
t2=t[7:-6:-1]
flag=True
l=len(t)
print("t3",t3)
print("t2",t2)
# for i in range(l):
# if(t[i]!=t2[i]):
# flag=False
# break
return flag
if __name__=="__main__":
x=123
print(Solution().test(123456789))
结果为
t3 5678
t2 8765
True
理解是这样的,当m为正时123456789[4: -1 :1] 取值是这样的,首先找到索引为4的起始位置(0开始)即为5,然后由于第二个参数为-1则从右边开始数1位即为:9然后取值方向是从左到右开始即5678;当m为负时123456789[7:-6:-1]首先找到索引为7的即为8,然后由于第二个参数为负数,则从右开始数9位,即找到4,然后方向是从右往左取即8765.