在 Python 中对列表进行切片查询 [duplicate]

Query on Slicing a list in Python [duplicate]

提问人:Mathew S 提问时间:2/15/2023 最后编辑:Mathew S 更新时间:2/15/2023 访问量:25

问:

如何打印特定列表选择的反面?

例如,我有一个列表,

a = [11,22,33,44,55,66,77,88]

我希望 a[1:4:-1] 打印 [44,33,22],但它给出了一个空列表。

我看过理解切片,但我找不到答案。

python-3.x 列表 切片

评论

0赞 ShadowRanger 2/15/2023
这个关于理解切片的答案直接解决了负步幅如何影响开始和停止的解释;它会自己回答你的问题。
0赞 ShadowRanger 2/15/2023
请注意,在 99% 的情况下,尝试在同一切片中混合选择和反转只会令人困惑,除非性能真的很重要,否则只执行正向切片并遵循规范的反转切片会更容易,例如在这种情况下。 获取所需的元素,生成所选元素的反转版本。a[1:4][::-1]a[1:4][::-1]

答:

0赞 David Culbreth 2/15/2023 #1

当提供 3 个参数时,python 切片语法为[start:stop:step]

为了获得该值,您需要像这样编写切片:[44, 33, 22]a[3:0:-1]

这之所以有效,是因为切片从 索引 开始,其值为 ,而切片在索引 之前停止,这意味着最后一个包含的索引是 (值为 ),基于 的值。3440122step-1