Python切片返回错误的值?

时间:2016-02-03 19:41:26

标签: python

我正在学习python,我对列表切片有问题。当我试图让所有元素都处于第三位时,我得错了:

l = [9, 0, 7, 1, 7, 5, 5, 9, 8, 0]
th = l[::3]
>> [9, 1, 5, 0]

但在我的逻辑中它应该是:

>> [7, 5, 8]

为什么会返回错误的结果?

2 个答案:

答案 0 :(得分:3)

问题是Python切片操作符从第一个索引(索引0)开始,而你希望它从第三个索引(索引2)开始。 [2::3]应该得到你想要的东西,因为这将告诉它从索引2开始并接受它以及之后的每个第三个元素。

答案 1 :(得分:3)

0, 3, 6, 9表示从0开始,每次都到列表末尾和步骤3 所以在每一步,它将输出索引l[2::3]的项目。这对应于Python返回的结果。如果你想要你想要的输出(从第三个元素开始的每三个元素),请尝试{{1}}。