列表的切片操作是否可以使用负值

列表的切面操作是指从数组中取某个或某几个数,其可以为负值,

Python中的序列索引可以是正值也可以是负值。如果是正索引,0表示序列中的第一个索引, 1表示序列的第二个索引。如果是负索引,表示其从后往前取。(-1)表示是最后一个索引, (-2)表示是倒数第二个索引,依次类推。(-0)为正索引。 用法如下

s[i]     # 第i个元素,下标从0开始,如果i为负值,表示的下标位置是len(s)+i,
s[i:j]   # 从i到j元素,包含i,但不包含j
s[i:j:k] # 从i到j, 步长为k

s[i:j]表示从i到j的元素序列。如果为负值,表示的下标位置和len(s)求和,如果i或j大于len(s), 则使用len(s). 如果i忽略,则i使用0。 如果j忽略,则j使用len(s)。

s[i:j:k]表示从i到j,步长为k的序列。如果k为负值,则表示从后往前。 示例代码如下

>>> s = [1, 2, 3, 4, 5]
>>> s[-3]
3
>>> s[:3]
[1, 2, 3]
>>> s[:-3]
[1, 2]
>>> s[-1]
5
>>> s[::-1]
[5, 4, 3, 2, 1]