这样解释吧some_iterabel[a:b:c]
a是起始,b是结束,c时一步走多少
a[-1:-4:-1]是-1开始-4结束,一步走-1
先定范围,-1到-4就是654,一步走-1,就是倒着走,所以就是654不变。
有趣的是a[-1:-4:1]
范围还是654不过自相矛盾了,因为是从后往前算的,你又让他正着走,自然没有东西啊
我是这样理解的:
L= []
for i in range(-1,-4,-1):
L.append(A[i])
#
print(list(range(-1,-4,1))) # [] 不在一个序列中
首先列表s[i:j:k]的概念说一下,i为起始位置,j为结束位置,k为步长。
如果i或j为正,表示从左边的位置开始,即从索引0开始,例如:s = '123.456',s[0:2] == '12'。
如果i或j为负,则表示从末尾的位置开始,即len(s)+i或len(s)+j的值,例如:s[-3:-1] == '45'。
从i到j的s切片定义为以k为步长的序列,其中i<=k
当k为正时,如果i和j的值大于len(s),则它们将减为len(s)。
当k为负时,如果i和j的值大于len(s),则它们将被减为len(s)-1。
第一个,k为-1,步长负数是从右向左依次递减输出,所以654。
第二个,起始位置i是-1,即6,步长1为正数,向右依次输出,不可能到达左边的-4位置,所以为空。