切片在python中无法正常工作

时间:2020-05-08 04:49:47

标签: python python-3.x slice

为什么下面列出的代码不起作用:

a=[1,2,3,4,5,6,7,8,9]
print(a[1::-1])

此代码应打印[2,1,9,8,7,6,5,4,3]。但是它正在打印[2,1]。为什么会这样? < / p>

1 个答案:

答案 0 :(得分:0)

我猜你的代码打印逻辑[2,1,9,8,8,6,6,5,4,3]是从第一个索引(2)开始,然后递减以打印第0个索引(1)。然后将索引设置为最后一个索引(索引8为9),然后从那里返回。所以:

1-> 0-> 8-> 7-> ...-> 3

但是,列表切片发生的事情是索引从0处停止,即它永远不会超出列表的长度或0。所以它就像:

1-> 0

如果要使用列表切片打印[2、1、9、8、7、6、5、4、3],则以下代码应该有效:

print(a[1::-1] + a[:1:-1])

在这里,我们添加两个从索引1-0到列表的最后一个索引到1的列表