我以为我理解了python中列表切片的基础知识,但在切片上使用负步骤时收到意外错误,因为如下:Python列表错误:[:: -1]踩在[:-1]切片上
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:-1]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a[:-1:-1]
[]
(注意,这是在Python 3.5中运行)
为什么没有一个: - :通过一个[1 -1]的反向步骤: - 在[1]片与通过[:: - 1]整个列表一样的方式?
我知道你也可以使用list.reverse(),但是试图更好地理解底层python slice功能。
我认为你正在寻找''一个[-1 :: - 1]''。第一个索引给出了开始,第二个索引给出了结束,并且你想从索引-1开始。 – jakevdp
@ekhumoro:我做了,它的工作原理。 '[9,8,7,6,5,4,3,2,1,0]' – Josh
@Josh。这与'a [:: - 1]'有什么不同? – ekhumoro