arr[start:stop:step]
是一个切片(slice)操作。
start
:省略了,所以默认为0,表示从数组的开始处开始。(但是step=-1,所以是默认从最后开始。)stop
:是-3
,表示从右向左数第三个元素的位置(注意这里是从右向左数的索引,即数组索引4的位置,对应元素5)。由于切片是左闭右开的区间,所以不会包括索引-3
(即5)这个位置。step
:是-1
,表示从右向左遍历数组。
因此,arr[:-3:-1]
将从数组的末尾开始,以步长-1(即向左)遍历,直到遇到(但不包括)索引-3
(即元素5)的位置为止。在这个例子中,它将包括元素4和3(从右向左数,它们是前两个元素)。
所以,arr[:-3:-1]
的结果是[5, 4]
。注意这里并没有包括元素3,因为切片是左闭右开的,而且步长是-1,所以从右向左数时,它会先遇到元素5和4,然后遇到索引-3
的位置(即元素5的位置),此时切片就会停止。