对于列表元组的切片取元素高级操作

在Python中,切片操作允许你从序列(如列表、元组、字符串等)中获取一部分子序列,而不是整个序列。切片操作使用冒号(:)来指定起始位置、结束位置和步长。

切片的基本语法是:

sequence[start:stop:step]
  • start:起始位置的索引(包括该位置的元素)。
  • stop:结束位置的索引(不包括该位置的元素)。
  • step:步长,控制每次取元素的间隔,默认值为1。

以下是一些常见的切片操作:

  1. 获取子序列
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
subset = my_list[2:5]  # 从索引2开始到索引5(不包括),结果为 [2, 3, 4]
  1. 指定步长
my_string = "abcdefg"
subset = my_string[1:6:2]  # 从索引1开始到索引6(不包括),步长为2,结果为 "bdf"
  1. 省略起始位置或结束位置
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
subset1 = my_list[:5]  # 从开头到索引5(不包括),结果为 [0, 1, 2, 3, 4]
subset2 = my_list[5:]  # 从索引5开始到结尾,结果为 [5, 6, 7, 8, 9]
  1. 反向切片
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
subset = my_list[::-1]  # 从结尾到开头,步长为-1,实现反向,结果为 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
  1. 在切片中修改元素
my_list = [0, 1, 2, 3, 4, 5]
my_list[1:3] = [10, 20, 30]  # 替换索引1到索引3(不包括)的元素,结果为 [0, 10, 20, 30, 3, 4, 5]

需要注意的是,切片操作返回的是一个新的序列,原始序列并没有被改变。

切片中的经典操作

  • 正向切片取元素
  • 反向切片取元素
  • 指定步长取元素

切片操作存在的意义

减少代码中循环的使用

猜你喜欢

转载自blog.csdn.net/weixin_44943389/article/details/133014334