如何在Python中切片字符串或列表?

2025年9月20日 by admin

在 Python 中,切片(slicing) 是一种用于提取字符串、列表或元组中某一部分的方式。你可以使用切片来创建原始序列的子序列。

基本语法:

sequence[start:end:step]
  • start:切片的开始位置(包含该位置)。
  • end:切片的结束位置(不包含该位置)。
  • step:步长,表示每次选择元素之间的间隔。

示例:切片字符串

text = "Hello, World!"
# 从索引 0 开始,到索引 5(不包含 5)提取
substring = text[0:5]
print(substring)  # 输出: Hello

# 从索引 7 到末尾提取
substring = text[7:]
print(substring)  # 输出: World!

# 从开头到倒数第 3 个字符(不包含)
substring = text[:-3]
print(substring)  # 输出: Hello, Wo

示例:切片列表

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

# 从索引 2 到索引 5(不包含 5)提取
sublist = numbers[2:5]
print(sublist)  # 输出: [3, 4, 5]

# 每隔 2 个元素提取
sublist = numbers[::2]
print(sublist)  # 输出: [1, 3, 5, 7, 9]

# 从末尾向前提取,步长为 -1(逆序)
sublist = numbers[::-1]
print(sublist)  # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1]

切片操作的特点

  • 切片不改变原始序列,而是返回一个新的子序列。
  • 切片可以省略其中一个或多个参数。例如,省略 start 表示从序列的起始位置开始,省略 end 表示切片到序列的末尾,省略 step 表示默认步长为 1。

常见切片操作

  • 提取从头到某个位置的部分
  my_str = "abcdef"
  print(my_str[:3])  # 输出: abc
  • 提取从某个位置到末尾的部分
  my_list = [10, 20, 30, 40, 50]
  print(my_list[2:])  # 输出: [30, 40, 50]

通过切片,可以非常方便地获取序列的任何一部分或进行逆序操作。