如何解释Python切片语法列表中的第一个冒号[:: - 1]

laz*_*ios 4 python list

我最近阅读了有关如何反转序列的代码片段

>> l = [1,2,3,4,5,6]
>> print l[::-1]
Run Code Online (Sandbox Code Playgroud)

产量

>> [6,5,4,3,2,1]
Run Code Online (Sandbox Code Playgroud)

如何解释括号中的第一个冒号?

Suk*_*lra 9

没有给出值的冒号意味着求助于默认值.步骤为负时的起始索引的默认值为,len(l)结束索引为-len(l)-1.因此,反向切片可以写成

l[len(l):-len(l)-1:-1]
Run Code Online (Sandbox Code Playgroud)

这是形式.

l[start:end:step]
Run Code Online (Sandbox Code Playgroud)

删除默认值,我们可以用更短的符号表示l[::-1].

Python的Slice Notation上讨论这个问题可能很有用.