切片的总结
Topic source还是不太理解这个L[-1:2:-1]
正常顺序时候是这样: -4 -3 -2 -1 0 1 2 3 4 1 2 3 4 0 1 2 3 4 那么对应的倒序-1时候就应该是这样的: -4 -3 -2 -1 0 1 2 3 4 4 3 2 1 0 4 3 2 1 那么从-1到2则会取到这几个数字:0 4 1 可是输出的却是4 3 这个怎么理解呢?
- 1
还是不太理解这个L[-1:2:-1]
正常顺序时候是这样: -4 -3 -2 -1 0 1 2 3 4 1 2 3 4 0 1 2 3 4 那么对应的倒序-1时候就应该是这样的: -4 -3 -2 -1 0 1 2 3 4 4 3 2 1 0 4 3 2 1 那么从-1到2则会取到这几个数字:0 4 1 可是输出的却是4 3 这个怎么理解呢?
Snowood123
python在根据切片规则进行遍历时, 先判断[0:1:1]中的最后一位是否为负(默认为正)先不判断数值, 如果为负,则倒序遍历, 如果为正,则顺序遍历, 遍历方向只与这个有关。 然后判断前两位的数值找出范围,
[-3,-1,1],先将前两位转成正[2,4,1], [2,-1,1] ---> [2,4,1] 正确 [-1,2,1] ---> [5,2,1] 错误!! 当最后一位为正时,第一位肯定比第二位小
[-1,-5,-1] ---> [2,4,-1] 正确 [2,-1,-1] ---> [2,5,-1] 错误!! [-1,2,-1] ---> [5,2,-1] 正确 当最后一位为负时,第一位肯定比第二位大
最后根据最后一位的数值去判断每次遍历的时候中间相差几个
另外当
当范围数值大于长度时,自动把list的边界当作遍历的边界