为什么切片表达式会生成该输出

k33*_*33n 6 python slice

我懂了:

#slicing: [start:end:step]
s = 'I am not the Messiah'
#s[0::-1] = 'I'
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下

start=0, end=0, step=-1
Run Code Online (Sandbox Code Playgroud)

为什么是

s[0::-1] == 'I'
>>>> True
Run Code Online (Sandbox Code Playgroud)

sch*_*tte 3

因为,-1在这种情况下是反向步进。

因此当你说

s[0::-1]
Run Code Online (Sandbox Code Playgroud)

0你实际上是从位置向后退到包含的-1 位置0

因此,I根据您的情况返回。

请注意,当我说位置时,0-1的意思是它将包含位置 0 并在之后停止切片,因为-1索引无效(这与反向索引不同,如my_list[-1]