📅  最后修改于: 2023-12-03 15:34:27.849000             🧑  作者: Mango
列表切片是Python中用于获取列表的子集的一种方法。切片是通过指定列表中元素的开始和结束索引来定义的,这样就可以选择需要的部分而不是整个列表。这个功能可以让我们更方便地访问和处理异构列表。本文将深入了解Python中切片的用法和特征。
使用切片,需要指定要处理的列表/元组/字符串对象,语法为:
obj[start:end:step]
需要注意的是,起始/结束索引的位置是相对于列表的元素个数来确定的。
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 获取索引2~5的元素(不包含5)
print(numbers[2:5]) # [2, 3, 4]
# 获取索引4~最后一个元素
print(numbers[4:]) # [4, 5, 6, 7, 8, 9]
# 获取索引0~7每隔2个元素的元素
print(numbers[0:7:2]) # [0, 2, 4, 6]
# 获取列表的倒数三个元素
print(numbers[-3:]) # [7, 8, 9]
# 反转列表
print(numbers[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
列表切片是原地创建新列表的,因此对切片的修改不会更改原始列表。例如:
numbers = [0, 1, 2, 3, 4, 5]
# 修改切片
numbers[1:3] = [9, 8, 7]
print(numbers) # [0, 9, 8, 7, 3, 4, 5]
# 修改原始列表
numbers[:] = []
print(numbers) # []
还应该注意,在进行切片时,不应超出列表的长度,否则会引发IndexError
异常。例如,若列表长度为5,则只能使用0~4的索引。
最后,我们还可以利用slice()
内置函数来创建切片对象,再将其应用于列表。例如:
numbers = [0, 1, 2, 3, 4, 5]
s = slice(2, 5)
print(numbers[s]) # [2, 3, 4]