[英]Understanding pythons reverse slice ( [::-1] )
我一直认为忽略python slice操作中的参数会导致:
0
len(lst)
1
如果步长为正,则成立,但步长为负时,如“ reverse slice” [::-1]
,省略开始/结束将导致:
len(lst)-1
None
这是特例,还是我错过了什么?
默认值始终为 None
; 由类型决定如何None
三个值中的任何一个处理None
。 在这种情况下slice(None, None, -1)
只将list
对象传递给slice(None, None, -1)
对象。
有关Python的默认序列类型(包括列表对象)如何解释这些信息,请参见序列类型文档中操作表的脚注5:
s[i:j:k]
5. [...]如果省略i或j或None
,它们将成为“结束”值(该结束取决于k的符号)。
因此,默认值取决于步长值的符号。 如果为负,则两端颠倒。 对于[::-1]
,最终值分别为len(s) - 1
和-1
(绝对值,不是相对于最终值),因为步长为负数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.