从末尾切割列表

Slicing a list from the end

说,我有一个值列表:

>>> a = [1, 2, 3, 4]

如何通过切片让它包含最终值?我预计:

>>> a[4:]
[4]

而不是:

>>> a[4:]
[]

Python 索引是基于零的。最后一个元素位于索引 3,而不是 4:

>>> a = [1,2,3,4]
>>> a[3:]
[4]

切片索引从零开始

所以如果你有:

>>> xs = [1, 2, 3, 4]
          |  |  |  |
          V  V  V  V
          0  1  2  3   <-- index in xs

你从 4 开始切片你得到:

>>> xs[4:]
[]

四是``xs`的长度,不是最后一个索引!

但是,如果您从 3 开始切片(列表的最后一个索引):

>>> xs[3:]
[4]

参见:Data Structures

许多常见的计算机编程语言和软件系统实际上都是零基础的,所以请阅读 Zero-based Numbering

a = [1,2,3,4]
a[-1:]

在python中你可以从开始到结束结束到开始迭代值 1, 2, 3, 4

| | | |

0 1 2 3(或)

-4 -3 -2 -1

所以如果你想要列表的最后一个元素,你可以使用 a[len(a)-1:] 或 a[-1:]