切片

在 Python 中,列表(list)的切片操作非常强大,可以用于提取子列表、反转列表等。以下是列表切片的所有用法:


切片的基本语法

new_list = list[start:stop:step]
  • start:切片的起始索引(包含),默认为 0。

  • stop:切片的结束索引(不包含),默认为列表长度。

  • step:切片的步长,默认为 1。


1. 基本切片

提取从 startstop 之间的元素。

示例

my_list = [0, 1, 2, 3, 4, 5]

# 提取索引 1 到 4 之间的元素
print(my_list[1:4])  # 输出 [1, 2, 3]

2. 省略 startstop

如果省略 start,则从列表开头开始;如果省略 stop,则到列表末尾结束。

示例

my_list = [0, 1, 2, 3, 4, 5]

# 从开头到索引 3
print(my_list[:3])  # 输出 [0, 1, 2]

# 从索引 2 到末尾
print(my_list[2:])  # 输出 [2, 3, 4, 5]

3. 使用负索引

负索引表示从列表末尾开始计算。

示例

my_list = [0, 1, 2, 3, 4, 5]

# 从倒数第 3 个元素到倒数第 1 个元素
print(my_list[-3:-1])  # 输出 [3, 4]

4. 使用步长 step

step 表示切片的步长,可以是正数或负数。

示例

my_list = [0, 1, 2, 3, 4, 5]

# 每隔一个元素提取
print(my_list[::2])  # 输出 [0, 2, 4]

# 反转列表
print(my_list[::-1])  # 输出 [5, 4, 3, 2, 1, 0]

5. 切片赋值

切片操作还可以用于修改列表的部分元素。

示例

my_list = [0, 1, 2, 3, 4, 5]

# 将索引 1 到 3 的元素替换为 [10, 11]
my_list[1:3] = [10, 11]
print(my_list)  # 输出 [0, 10, 11, 3, 4, 5]

6. 删除切片

通过切片操作可以删除列表的部分元素。

示例

my_list = [0, 1, 2, 3, 4, 5]

# 删除索引 1 到 3 的元素
my_list[1:3] = []
print(my_list)  # 输出 [0, 3, 4, 5]

7. 复制列表

通过切片操作可以复制整个列表。

示例

my_list = [0, 1, 2, 3, 4, 5]

# 复制列表
new_list = my_list[:]
print(new_list)  # 输出 [0, 1, 2, 3, 4, 5]

8. 复杂切片

结合 startstopstep 可以实现更复杂的切片操作。

示例

my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 从索引 1 开始,到索引 8 结束,步长为 2
print(my_list[1:8:2])  # 输出 [1, 3, 5, 7]

总结

列表切片的基本用法包括:

  1. 基本切片list[start:stop]

  2. 省略 startstoplist[:stop]list[start:]

  3. 负索引list[-3:-1]

  4. 步长list[::2]list[::-1]

  5. 切片赋值list[1:3] = [10, 11]

  6. 删除切片list[1:3] = []

  7. 复制列表new_list = list[:]

  8. 复杂切片list[start:stop:step]

通过灵活使用切片操作,可以高效地处理列表数据!

最后更新于

这有帮助吗?