li=[1,2,3,4,5,6,7,8,9]
print(li[0:9:-1]) #[]
print(li[0::-1]) # [1]
a[start:stop:step]
获得start到stop下标的前闭后开区间范围内的元素
step(步长)是一个非零整数,就当对于你夸台阶一样,你是一步一步的夸,还是想两步两步的夸,就用这个指定。
有一说一 这个问题能想出来也是牛批
假设我们要对[i:j:s]操作
当s<0时:i缺少时,默认为-1; j缺省时,默认为-len(a)-1
对于print(li[0:9:-1]) #[] 可以理解为他从下标0~下标8进行操作,步长为-1,在 这个例子中 如果步长是-1,i必须大于j,否则这个列表不存在,就好比取一个值 又要>1,又要<0,所以根本没有这个集合,只能是print(li[9:0:-1])这样子,因为默认的i,j 为 -1 和 -len(a)-1 ,这样子颠倒过来直接违背了规则,自然取到的就是空集。
至于 print(li[0::-1]) # [1] , i为0,j为默认的 -len(a)-1 也就是-10; 表示我们数的时候从第0项开始,因为j是-10,也就是说我们从第0项倒序数到-10项,发现没,巧了! 第0项就是第-10项,这个切割完的列表只有一个元素也就是1,所以这一个数你倒数下来也只有一个数字。