生成并切片反转列表

Jra*_*u56 1 python reverse list

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

当我尝试:

import string
letters = string.ascii_lowercase
letters[4:0:-1]
Run Code Online (Sandbox Code Playgroud)

'EDCB'

这是有道理的,因为索引是[4,3,2,1].但是,使用-1以下结果:

letters[4:-1:-1]
Run Code Online (Sandbox Code Playgroud)

""

我知道我可以做"".join(reversed(letters[:5]))或使用列表理解,但我很好奇如何用消极的步骤做到这一点.

r.o*_*ook 5

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

想一想slice:

[element to start at: 
 element to start excluding: 
 steps]
Run Code Online (Sandbox Code Playgroud)

因此,如果没有0在切片的第二部分明确说明,那么您告诉解释器从索引开始4并继续步骤-1直到找不到任何元素.

另一种可视化的方法是,如果你要向前做这个并且想要"vwxyz",你不会使用letters[21:25:1],但只是letters[21:]转换为letters[21:None:1]