以负步幅转到序列开头的扩展切片
当我解释我的问题时,请耐心等待。如果您已经了解扩展的切片列表索引,请跳至粗体标题。
在python中,您可以使用切片符号为列表编制索引。这是一个例子:
>>> A = list(range(10))
>>> A[0:5]
[0, 1, 2, 3, 4]
您还可以包括一个跨步,其作用类似于一个“步骤”:
>>> A[0:5:2]
[0, 2, 4]
跨度也可以是负数,这意味着将以相反的顺序检索元素:
>>> A[5:0:-1]
[5, 4, 3, 2, 1]
可是等等!我想看看[4, 3, 2, 1, 0]
。哦,我知道了,我需要减少开始索引和结束索引:
>>> A[4:-1:-1]
[]
发生了什么?它将-1解释为位于数组的末尾,而不是开头。我知道您可以达到以下目的:
>>> A[4::-1]
[4, 3, 2, 1, 0]
但是您不能在所有情况下都使用它。例如,在已传递索引的方法中。
我的问题是:
有没有什么好方法可以使用带有负步幅的扩展切片 以及 包含序列第一个元素的 显式起始索引和终止索引 ?
到目前为止,这是我想出的,但似乎并不令人满意。
>>> A[0:5][::-1]
[4, 3, 2, 1, 0]