【发布时间】:2023-04-07 03:13:01
【问题描述】:
我在 python 中切片列表,无法解释一些结果。 以下两个对我来说都很自然:
>>>[0,1,2,3,4,5][1:4:1]
[1, 2, 3]
>>>[0,1,2,3,4,5]
[::-1] == [5,4,3,2,1,0]
然而,
>>>[0,1,2,3,4,5][1:4:-1]
[]
以为我希望它是 [3,2,1]。为什么会产生 [ ]?为什么它不反转列表?在 python 中,步骤或切片首先发生了什么?
我也发现了
>>>[0,1,2,3,4,5][-3:-6:-1]
[3,2,1]
【问题讨论】:
-
我对此的直觉是,在考虑
[start:stop:step]时,[start:stop]和step必须在同一个方向上。同样的,你不能在大声数数的时候从 1 开始倒数到 5 结束。