Python列表索引和切片是指如何从列表或类似数组的对象中选择和筛选数据。这里讨论的技术也适用于元组。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
列表(List)与元组(Tuple)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
如果你熟悉VBA或其他编程语言,Python列表和元组基本上都是数组。列表或元组可以包含任何类型的对象/数据,它们之间的区别在于列表是可变的(可以修改),元组是不可变的(不能修改)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
有趣的事实是:String(字符串)对象实际上是一个元组!这意味着你不能修改字符串对象中的单个字母。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
准备列表文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
我们将使用一个简单的列表来演示这些技术。在本文中,我们不需要任何库,只需要纯Python列表操作。注意,Python使用基于0的索引,这意味着索引从0开始,而不是从1开始。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
li = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’]文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
li2 = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’]文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
图1:Python列表演示文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
Python列表基本操作文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
Python列表只有几个内置函数,这里介绍其中的几个:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
- append():将项目元素添加到列表中
- extend():向列表中添加项目元素。append和extend的区别,append添加1个项目,extend添加一个列表。
- remove():从列表中删除项目元素。
- pop():从列表中删除最后一项元素,并将其返回。
- insert():在列表中插入一项元素。
- index():返回元素的索引。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
选择项目元素文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
图2文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
从列表末尾访问项目元素文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
图3文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
切片/选择各种项目文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
python列表使用符号[n:m]来表示一个“切片”,字面上是指从第n项到第m项的多个连续项。Python列表切片有一种奇怪的表示法:开始项使用基于0的索引,而结束项使用基于1的索引。参阅下面的代码和视觉辅助工具以供参考。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
图4文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
图5文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
上述切片从第二个元素(1)开始,在第五个元素(5)结束,分别是B和E。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
在下列情况下,可以省略起始索引或结束索引:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
- 从开头开始:li[:5],返回前5项:['A','B','C','D','E']
- 以最后一项结尾:li[5:],返回最后5项:['F','G','H','I','J']
- 也可以使用li[:],这是完整的列表,就像li一样
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
反转列表文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
有两种方法可以反转列表。一种是内置方法,另一种是通过切片。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
注意:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
- .reverse()方法覆盖原始列表。
- 切片不会覆盖原始列表,因为它返回列表的“切片”
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
图6文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
合并不同的列表文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
有两种方法可以合并不同的列表:.extend()方法或只使用+符号。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
- extend()方法合并两个列表,然后将结果列表赋值给原始列表。
- +符号也合并两个(或多个)列表,但不会覆盖原始列表。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
图7文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
从列表中删除重复值文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
列表可以包含任何类型的数据项,包括重复项。有几种方法可以删除重复的值,这里将介绍一种更具python风格的方法。为此,我们需要了解另一种数据结构:集(set)。集是不同项的无序集合,使用一对花括号来表示集。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
这里的思路是首先将列表转换为一个集(因此保留不同的项),然后将集转换回列表。参见以下示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
图8文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html
注:本文学习整理自pythoninoffice.com。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/23958.html