各类资料学习下载合集  

 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] (原列表未改变)