为什么python slice语法没有从负索引到正索引回绕?

rkr*_*rzr 6 python slice

给定l = [1,2,3],我注意到l[-1:]返回的结果[3]与预期的一样,但是l[-1:0]返回的结果[]却与我的预期非常不同。然后我尝试了[-1:1],希望可以返回[3,1],但是也可以返回[]

切片语法没有从负索引到正索引(以及相反)环绕的原因是否充分?

似乎实现起来非常有用并且非常简单,但是也许我缺少了一些东西。

Kas*_*mvd 0

首先你需要知道Python中的切片是从左到右所以当你尝试[3,1][-1:1]结果是空的!您可以假设列表中的每个条目都有 2 个索引,如下所示:例如,如果我们有一个包含 4 个条目的列表,则这是索引号:

[0,1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

或者

[-5,-4,-3,-1] 
Run Code Online (Sandbox Code Playgroud)

要完整了解切片,请参阅此处:http ://struct.usc.edu/numarray/node26.html