搞懂Python切片中start、end、steps正负的区别

各位读者对于切片的疑惑的地方应该都是start、end、steps为负数或正负数混用时是什么意思。

start、end表示截取的范围

start、end的正负表示位置的计数方式(正数表示从位置0开始计数,负数表示从末尾开始计数,没有-0和+0之分,因此0只表示位置0)

位置:0    1       2       3       4       5
     -6   -5      -4      -3      -2      -1       
   l=[2,   3   ,   4   ,   5   ,   6   ,   7]

steps:步长(每隔steps-1个数据进行截取,2则表示每隔1个数进行截取,1则表示每隔0个数进行截取)

steps的正负号表示截取的方向(正表示从start开始向前截取,负表示从start开始向后截取)

step为正向前截取 ============>
        l=[2,   3,   4,   ,5   ,6   ,7]
step为负向后截取<============
l[0:2]=[23](不包含位置2)
     =====>
    [2,   3,   4,   ,5   ,6   ,7]
位置 0    1    2     3    4    5 



l[2:0]=[](不指定时step默认为1,向前截取,而位置0却在位置2“后面”,与截取方向相反,因此为空)
    =====>
    [2,   3,   4,   ,5   ,6   ,7]
位置 0    1    2     3    4    5 
    终   起

l[2:0:-1]=[4,3](-1表示向后截取,位置0在位置2“后面”,与截取方向是一致的,因此不为空)
      <=====
    [2,   3,   4,   ,5   ,6   ,7]
位置 0    1    2     3    4    5
    终   起


l[-4:-1]=[4,5,6]
               ============>
    [2,   3,   4,   ,5   ,6   ,7]
位置-6    -5   -4   -3    -2   -1



l[-1:-4]=[](向前截取,位置-1在位置-4“后面”,方向相反,因此为空)
                    ===========>
    [2,   3,   4,   ,5   ,6   ,7]
位置-6    -5   -4   -3    -2   -1
				    终		   起	


l[-1:-4:-1]=[7,6,5](向后截取,位置-4在位置-1后面,方向一致)
                    <===========
    [2,   3,   4,   ,5   ,6   ,7]
位置-6    -5   -4   -3    -2   -1
				    终		   起	


  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值