切片在python中无法正常工作

问题描述 投票:0回答:2

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

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]。为什么会这样?

python python-3.x slice
2个回答
0
投票
a=[1,2,3,4,5,6,7,8,9]
print(a[1::-1]+a[:1:-1])

0
投票

我猜您用于代码打印[2、1、9、8、7、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的两个列表

© www.soinside.com 2019 - 2024. All rights reserved.