我已经看到了一些有关切片的问题,但是还没有看到有关其中一些问题的有用答案,对此我很难理解。假设我们有此列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
然后按以下方式切片:
a[:8:-1] #Ouput: [9]
为什么?我们给它一个8的结尾,一个-1的步长。它如何以这种方式表现?
如果省略切片表达式的第一部分,则默认为None
。当需要list.__getitem__
解释slice(None, 8, -1)
的含义时,它将使用步长的符号来确定您是从0开始向上计数还是从列表末尾开始向下计数。在这种情况下,您要递减计数,因此:8:-1
等于slice(-1, 8, -1)
。