举个例子a = [1, 2, 3, 4, 4, 5, 6, 9]
如果你试着用正指数分割它newa = a[1:5]
这将导致newa = [2, 3, 4, 4]
这是因为,在上面这种情况下,切片是这样发生的,[包含:排他的],包括第一个索引,切片从这个索引开始,只在索引(5)前面结束一个索引,排他的(记住)。这就是列表切片的工作方式。
要得到列表a的最后两个值newa = [6 : ]
这里,索引从6开始(包括6),一直到列表的末尾。
如果您热衷于在列表中使用负索引(如Python提供的那样)来简化索引,那么请一劳永逸地了解有关切片的包含性和独占性内容。
对于上面的相同示例,要使用负索引获取列表的最后两个数字,我们要做的是newa = a[-2 : ]
在正索引的情况下,索引从0开始,而对于负索引,索引在-1,-2处,依此类推。所以在上面的例子中,从列表的倒数第二开始,切片到列表的末尾,这就是我们所理解的。
现在,你可以把清单倒过来print a.reverse()
[9, 6, 5, 4, 4, 3, 2, 1]
以切片的方式,列表可以通过给它一个如上所述的[开始,结束,步骤]来反转,但我想进一步澄清它。r = a[2: : -1]
这将生成一个新的列表,从索引2的数字开始,一直到列表的末尾,但是由于步骤是-1,我们将从索引2减少,直到达到0。因此,我们给出了前三个数字的相反列表,如下所示:r = [3, 2, 1]
另外,要想把整个名单颠倒过来r = a[len(a): : -1]
这将从列表的长度8开始,但是从0开始,我们有0到8个索引,所以从第8个索引开始,它将以-1的顺序递减,直到列表的末尾。结果是:[9, 6, 5, 4, 4, 3, 2, 1]
我个人更喜欢用这个来颠倒列表。