我正在学习python,我对列表切片有问题。当我试图让所有元素都处于第三位时,我得错了:
l = [9, 0, 7, 1, 7, 5, 5, 9, 8, 0]
th = l[::3]
>> [9, 1, 5, 0]
但在我的逻辑中它应该是:
>> [7, 5, 8]
为什么会返回错误的结果?
答案 0 :(得分:3)
问题是Python切片操作符从第一个索引(索引0)开始,而你希望它从第三个索引(索引2)开始。 [2::3]
应该得到你想要的东西,因为这将告诉它从索引2开始并接受它以及之后的每个第三个元素。
答案 1 :(得分:3)
0, 3, 6, 9
表示从0开始,每次都到列表末尾和步骤3
所以在每一步,它将输出索引l[2::3]
的项目。这对应于Python返回的结果。如果你想要你想要的输出(从第三个元素开始的每三个元素),请尝试{{1}}。