Skip to main content
 首页 » 编程设计

python之生成和切片反向列表

2025年05月04日21linjiqin

这可能是愚蠢和基本的,但我如何获得列表 edcba

当我尝试时:

import string 
letters = string.ascii_lowercase 
letters[4:0:-1] 

'edcb'

这在某种程度上是有道理的,因为索引是 [4,3,2,1]。但是,使用 -1 会导致以下结果:

letters[4:-1:-1] 

''

我知道我可以做 "".join(reversed(letters[:5])) 或使用列表理解,但我很好奇如何用负步骤来做。

请您参考如下方法:

letters[4::-1],基本上是 letters[4:None:-1]

这样想切片:

[element to start at:  
 element to start excluding:  
 steps] 

因此,通过在切片的第二部分中不显式声明 0,您是在告诉解释器从索引 4 开始并转到步骤 -1 直到找不到任何元素。

另一种可视化方式是,如果您要向前执行此操作并想要 "vwxyz",则不会使用 letters[21:25:1],但只有 letters[21:] 转换为 letters[21:None:1]