python对切片的理解

16 篇文章 0 订阅
13 篇文章 0 订阅

切片的书写形式:[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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值