Python入门教程第32篇 列表切片
Posted 不剪发的Tony老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门教程第32篇 列表切片相关的知识,希望对你有一定的参考价值。
本篇我们将会学习如何利用切片操作返回列表的子集。
列表切片语法
Python 列表支持以下切片语法,可以从一个列表中返回子列表:
sub_list = list[begin: end: step]
在以上语法中,begin、end 以及 step 参数都必须是有效的下标,而且它们都是可选参数。begin 下标默认为 0,end 下标默认为列表的长度,step 下标默认为 1。
切片操作返回的子列表从 begin(包含)下标开始到 end(不包含)下标结束,下标每次增长 step。
begin、end 以及 step 可以为正数或者负数。正数表示切片操作从左至右返回子列表,负数表示切片操作从右至左返回子列表。
除了返回子列表之外,列表切片还可以用于修改列表,例如更新、调整以及删除列表中的一部分。
列表切片示例
下面我们来看几个列表切片操作的示例。
示例一:基本的列表切片操作
colors 是一个字符串列表:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
以下示例使用列表切片返回了 colors 列表的一个子列表:
sub_colors = colors[1:4]
print(sub_colors)
输出结果如下:
['orange', 'yellow', 'green']
起始下标为 1,因此切片从“orange”开始。结束下标为 4,所以切片的最后一个元素为“green”。最终,切片操作创建了一个新的列表,包含 3 个元素:[‘orange’, ‘yellow’, ‘green’]。
以上示例没有使用 step 参数,因此切片返回了起始下标到结束下标之间的所有元素。
示例二:返回列表前 N 个元素
如果想要返回列表的前 N 个元素,可以直接省略起始下标:
list[:n]
以下示例返回了 colors 列表中的前三个元素:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
sub_colors = colors[:3]
print(sub_colors)
输出结果如下:
['red', 'orange', 'yellow']
实际上,colors[:3] 等价于 color[0:3]。
示例三:返回列表后 N 个元素
如果想要返回列表中最后的 N 个元素,可以使用负数下标。
例如,以下示例返回了 colors 列表中最后的三个元素:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
sub_colors = colors[-3:]
print(sub_colors)
输出结果如下:
['blue', 'indigo', 'violet']
示例四:返回列表中指定间隔的元素
以下示例返回了列表 colors 中每两个元素中的一个:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
sub_colors = colors[::2]
print(sub_colors)
输出结果如下:
['red', 'yellow', 'blue', 'violet']
示例五:返回反转后的列表
如果我们指定一个负数步长,切片操作将会返回从右到左的列表元素。也就是说,它可以反转列表。例如:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
reversed_colors = colors[::-1]
print(reversed_colors)
输出结果如下:
[‘violet’, ‘indigo’, ‘blue’, ‘green’, ‘yellow’, ‘orange’, ‘red’]
示例六:替换列表中的部分元素
除了返回列表中的部分元素之外,切片操作也可以用于修改列表元素。
以下示例将列表 colors 前两个元素修改为新的颜色:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
colors[0:2] = ['black', 'white']
print(colors)
输出结果如下:
['black', 'white', 'yellow', 'green', 'blue', 'indigo', 'violet']
示例七:替换部分元素并修改列表大小
以下示例使用切片操作替换了列表 colors 中的前两个元素,同时增加了一个新的元素:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
print(f"The list has len(colors) elements")
colors[0:2] = ['black', 'white', 'gray']
print(colors)
print(f"The list now has len(colors) elements")
输出结果如下:
The list has 7 elements
['black', 'white', 'gray', 'yellow', 'green', 'blue', 'indigo', 'violet']
The list now has 8 elements
示例八:删除列表中的元素
以下示例使用切片操作删除了列表 colors 中的第 3 个、第 4 个以及第 5 个元素:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
del colors[2:5]
print(colors)
输出结果如需:
['red', 'orange', 'indigo', 'violet']
总结
- 列表切片操作可以用于返回子列表或者修改列表。
以上是关于Python入门教程第32篇 列表切片的主要内容,如果未能解决你的问题,请参考以下文章