各类资料学习下载合集
https://pan.quark.cn/s/8c91ccb5a474
Python 中的列表切片(slice)操作是一个非常强大的功能,它允许你以一种简洁的方式获取列表的子集。切片操作不仅可以用于列表,还可以用于其他可迭代对象,如字符串和元组。下面我们将详细介绍列表的切片操作,包括基本语法、使用方式和一些示例。
列表切片的基本语法
切片语法如下:
list[start:end:step]
start
:切片的起始索引(包含该索引)。end
:切片的结束索引(不包含该索引)。step
:步长,默认为 1。
1. 基本切片操作
示例
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 获取列表的前5个元素
slice1 = my_list[0:5] # [0, 1, 2, 3, 4]
print(slice1)
# 获取列表的最后5个元素
slice2 = my_list[-5:] # [5, 6, 7, 8, 9]
print(slice2)
# 获取列表的特定范围
slice3 = my_list[2:8] # [2, 3, 4, 5, 6, 7]
print(slice3)
2. 使用步长
步长允许你控制切片的步幅。
示例
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 每隔一个元素取值
slice4 = my_list[::2] # [0, 2, 4, 6, 8]
print(slice4)
# 反向切片
slice5 = my_list[::-1] # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(slice5)
# 指定起始点和步长
slice6 = my_list[1:9:3] # [1, 4, 7]
print(slice6)
3. 切片的边界处理
切片操作不会引发索引错误,即使指定的索引超出了列表的范围。
示例
my_list = [0, 1, 2, 3, 4]
# 超过范围的起始索引
slice7 = my_list[2:10] # [2, 3, 4]
print(slice7)
# 超过范围的负索引
slice8 = my_list[-10:-1] # [0, 1, 2, 3]
print(slice8)
4. 切片与赋值
切片不仅可以用来获取子列表,还可以用来修改列表的部分元素。
示例
my_list = [0, 1, 2, 3, 4]
# 修改列表的部分元素
my_list[1:4] = [10, 11, 12] # 将索引 1 到 3 的元素替换为 [10, 11, 12]
print(my_list) # 输出: [0, 10, 11, 12, 4]
# 插入元素
my_list[2:2] = [100, 101] # 在索引 2 的位置插入元素
print(my_list) # 输出: [0, 10, 100, 101, 11, 12, 4]
5. 切片的返回值
切片操作返回一个新列表,不会修改原列表。
示例
my_list = [0, 1, 2, 3, 4]
sub_list = my_list[1:4]
print(sub_list) # 输出: [1, 2, 3]
print(my_list) # 输出: [0, 1, 2, 3, 4] (原列表未改变)