python: 列表切片
Python 中的列表切片语法是一种非常灵活且强大的方式,用于获取列表的一部分元素。列表切片的基本语法如下:
lst[start:stop:step] # lst为列表
这里,start
是切片开始的位置的索引(包含),stop
是切片结束的位置的索引(不包含),而 step
是切片的步长,即每次跳跃的元素数。
1.参数解释:
-
start
(可选):切片开始的位置的索引。如果省略,默认为列表的开头。 -
stop
(可选):切片结束的位置的索引。如果省略,默认为列表的末尾。 -
step
(可选):切片的步长,即每次跳跃的元素数。默认为 1,表示连续切片。如果为负数,则表示反向切片。
2.示例:
# 定义一个列表
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 获取从索引2到索引5(不包括5)的元素
print(my_list[2:5]) # 输出: [2, 3, 4]
# 获取从开始到索引5(不包括5)的元素
print(my_list[:5]) # 输出: [0, 1, 2, 3, 4]
# 获取从索引5到结束的元素
print(my_list[5:]) # 输出: [5, 6, 7, 8, 9]
# 获取整个列表
print(my_list[:]) # 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 使用步长为2的切片,获取奇数索引位置的元素
print(my_list[::2]) # 输出: [0, 2, 4, 6, 8]
# 使用负步长进行反向切片
print(my_list[::-1]) # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3.注意点:
-
当
step
为正数时,切片从start
到stop - 1
;当step
为负数时,切片从start
到stop + 1
(但不包括该位置),但反向进行。 -
如果
start
或stop
超出了列表的范围,Python 会抛出IndexError
。但如果它们是负数,它们会从列表末尾向前计算索引。例如,-1
表示最后一个元素。 -
如果
step
为0,会抛出ValueError
。 -
对于空列表或超出范围的切片,Python 会返回一个空列表。例如,
my_list[5:3]
将返回一个空列表。