这个问题在这里已有答案:
python中的扩展切片语法已经解释为“ a[n:m:k] returns every kth element from n to m
” .
这让我很清楚当k为正时会发生什么 . 但我迷失了如何解释 a[n:m:k]
为负k . 我知道 a[::-1]
会反转a,并且 a[::-k]
会占用反转a的第k个元素 .
但这是对k正定义的概括呢?我想知道如何实际定义 a[n:m:k]
,以便(例如)我能理解为什么:
"abcd"[-1:0:-1] = "dcb"
a[n:m:-k]
是否反转了序列a,然后从n开始并在m之前结束一个原始索引的元素?我不知道其他的n和m值是什么,以便弄清楚这是如何实际定义的,并且搜索让我无处可去 .
2 回答
[-1:0:-1]
表示:从索引len(string)-1
开始并向上移动到0
(不包括在内)并采取步骤-1
(反向) .因此,提取以下索引:
例:
Python文档(here's the technical one; range()的解释有点容易理解)比简化的"every kth element"解释更正确 . 切片参数恰当地命名
所以切片从
start
定义的位置开始,在到达位置stop
之前停止,并通过step
项从一个位置移动到下一个位置 .