<p>我认为理解代码中的内容最简单的方法之一是理解向后切片与索引列表的方式相反(<em>在视觉上是</em>,就像</em>颠倒列表一样)<em>在切片之前,但是列表中元素的索引本身并不<em>改变。在</p>
<p>因此,当你有这样的列表时:</p>
<pre><code>['jumbly', 'wumbly', 'number', 5]
0 1 2 3 #<-- index
</code></pre>
<p>通过使其反向读取(添加<code>-1</code>作为第三个索引器),可以使它看起来像这样(因为它现在是从最后一个索引到第一个索引,而不是从第一个索引到最后一个索引):</p>
^{pr2}$
<p>然后当你从“开始”切到一个(<code>:1</code>),你会从“开始”得到一切(现在“开始”是<code>3</code>),当看到<code>1</code>时停止:</p>
<pre><code>[5, 'number', 'wumbly', 'jumbly']
3 2 1 0 #<-- index
^ ^ x
grab! grab! nope!
</code></pre>
<p>所以你得到了回报:</p>
<pre><code>[5, 'number']
</code></pre>
<p>使用<code>[:2:-1]</code>向后切片时,同样的原则也适用:</p>
<pre><code>[5, 'number', 'wumbly', 'jumbly']
3 2 1 0 #<-- index
^ x
grab! nope!
</code></pre>
<p>所以你得到了你的结果:</p>
<pre><code>[5]
</code></pre>
<p>现在,使用这个原则,你知道如果你想返回你想要的结果,你应该把什么作为第二个索引器:<strong>0!</strong>-->;<code>[:0:-1]</code>:</p>
<pre><code>[5, 'number', 'wumbly', 'jumbly']
3 2 1 0 #<-- index
^ ^ ^ x
grab! grab! grab! nope!
</code></pre>
<p>然后,您将得到您想要的结果:</p>
<pre><code>[5, 'number', 'wumbly']
</code></pre>