社科大数据平台Python学习系列 | 组合数据类型-列表
目录
一、前言
二、什么是组合数据类型,Python 中有哪些组合数据类型?
三、什么是列表,如何创建列表,数据处理中哪里会用到列表?
什么是列表
如何创建列表
列表在数据处理中的使用场景
四、如何增、删、改、查列表中的元素
向列表中增加元素
删除列表中的元素
修改列表中的元素
查询列表中的元素
五、列表常用函数
列表切片
获取列表长度
获取列表中最大/小的元素
统计列表中元素出现的次数
列表排序
列表顺序反转
六、结束语
本文共4183个字,阅读大约需要13分钟,欢迎指正!
Part1前言
上期文章我们初步窥探 Python 基础语法,学习了 Python 中变量和运算的相关知识。下一阶段,我们将学习 Python 中更高阶的数据类型——组合数据类型。组合数据类型的实用性很高,在 Python 中被频繁使用,能够帮助我们完成复杂的数据处理任务。
本期文章我们先一起了解 Python 中的四种组合数据类型,然后学习其中的列表及其相关知识。
Part2什么是组合数据类型,Python 中有哪些组合数据类型?
首先,组合数据类型(或复合类型)的基本概念是:能够表示多个数据的类型称为组合数据类型。揣摩这个概念可以知道,组合数据类型是能够表示多个数据,而不是必须表示多个数据,也就是说组合数据类型可以表示零到多个数据。
在 Python 中,存在四种组合数据类型,即列表(list)、集合(set)、元组(tuple)、字典(dict)。这些组合数据类型可以大致归为序列类型、集合类型和映射类型这三类,Python 中四种组合数据类型的分类如下表所示。
序列类型 | 列表、元组 |
---|---|
集合类型 | 集合 |
映射类型 | 字典 |
上表中序列类型表示一维元素向量,元素之间存在顺序,即序列是有序的,我们可以通过序号来访问序列中的元素。之前的文章中,我们讲过的 Python 字符串实际上也是一种序列类型,而字符串索引就是我们所说的序号。
Python 中最典型的集合类型就是 Python 集合。这里的集合与数学中的集合十分相似,他们有一个共同的特点,即集合中的元素不能重复,这一点与序列类型是不同的。集合类型与序列类型另一个不同点是集合是无序的,集合中的元素没有序号,无法通过序号访问集合元素,且集合只能存储不可变数据类型(那什么是不可变数据类型呢?下期文章我们学习 Python 集合时会详细介绍)。
与序列类型、集合类型完全不同的是映射类型,其中最常见的就是 Python 字典。映射类型强调的是键(key)与值(value)的对应关系。键与值之间使用冒号连接,一个键值对表示一个字典元素,一个字典中所有的键不能重复且字典的键必须是不可变数据类型,也就是说,一个键只能对应一个值,但多个键可以对应同一个值。一个含有三个键值对的字典格式为
{key1:value1, key2:value2, key3:value3}
接下来,咱们再来详细介绍序列类型中的列表。
Part3什么是列表,如何创建列表,数据处理中哪里会用到列表?
1什么是列表
列表(list)是一种有序的组合数据类型,可以存放零到多个不同类型的元素(包括列表类型本身以及其他组合数据类型,事实上,列表可以存放几乎所有数据类型),不同元素之间使用逗号分隔,所有元素都存放在方括号[]
内。如下图所示。
2如何创建列表
创建列表非常容易,我们使用方括号[]
将一组数据包围起来,其中各数据之间使用逗号分隔开,这样列表就创建成功了。例如:
list_create = ['Str', 123, 1.5]
list_create = ['Str', [0, 1, 2], []]
我们也可以使用 list()
函数将其他具有序列属性的数据转化为列表,比如可以将字符串转为列表,转化后列表中的元素分别对应着字符串中的字符,如下图所示。
使用上述方法还可以将其他可迭代对象转化为列表对象。例如集合,元组等,这里不再做演示。
3列表在数据处理中的使用场景
列表的使用非常广泛,从数据处理的角度出发,我们常见的数据表与列表就有着密不可分的关系。
上图所示数据表是通过 Python 中数据处理模块 Pandas 定义的数据表,该表中任何一行、一列数据都可以与列表互相转化。我们可以将一列(或一行)数据转换为一个列表,也可以把一个列表添加到表中作为一列(或一行)。由于列表中还可以再存储列表,所以即使是一整张表也可以通过一个列表来表示,上图所示数据表正是通过这种方式定义的,如下图所示。
当我们需要将上表中某个字段转为一个列表时,可以这样做:
如果我们需要向表中添加一个字段,字段名为 “指标D”
,可以这样做:
总之列表的用处非常多,更多的使用场景和用法需要大家在学习之后探索。
Part4如何增、删、改、查列表中的元素
首先,列表是有序序列,具有索引属性,列表索引与字符串索引性质完全一样,不熟悉索引的读者可以移步查看索引相关知识与用法。
💡 请移步至下文中 Part4:字符串切片 一节查看字符串切片。
社科大数据平台Python学习系列 | Python 字符串操作(上)
1向列表中增加元素
(1)使用 append()
向列表末尾追加元素。这种方法每次可以向列表的末尾追加一个元素。使用示例如下图所示。
(2)使用 insert()
向列表指定位置插入元素。这种方法每次可以向列表的指定位置插入一个元素。使用示例如下图所示。
(3)使用 extend()
将一个列表中的元素全部追加到另一个列表中的末尾。这种方法可以一次性将一个列表中的所有元素追加到另一个列表的末尾。使用示例如下图所示。
(4)使用运算符 +
将两个列表合二为一,这种方法与使用 extend()
十分类似,使用示例如下图所示。
(5)使用运算符 *
复制列表中的元素,这与字符串的复制也很相似,使用示例如下图所示。
2删除列表中的元素
(1)使用 remove()
删除列表中的元素,将列表中需要删除的元素值传入该函数中,就可以删除列表中对应的元素,这个删除操作没有返回值。当需要删除的元素在列表中出现多次时,remove()
方法只会删除第一次出现的该元素,即索引值最小的一个。当列表中没有要删除的值时,remove()
会报错。使用示例如下图所示。
(2)使用 pop()
删除指定索引位置的元素。只需将待删除元素的索引传入 pop()
即可,如果不传入任何值,会删除列表中最后一个元素。如果传入了错误的索引值,pop()
会报错。此外,该方法会返回被删除的元素值。使用示例如下图所示。
(3)使用 del
关键字删除列表中的元素,需要配合列表索引使用,同时也可以删除整个列表对象。使用示例如下图所示。
(4)使用 clear()
能够清空列表,此方法不需要任何参数,作用是删除列表中所有元素,但保留列表对象。使用示例如下图所示。
3修改列表中的元素
修改列表中的元素只需要将新的元素值赋值给旧元素值所在的索引位置即可。使用示例如下图所示。
4查询列表中的元素
如果是想要查询某元素是否存在于列表中,我们可以使用成员运算符 in
或 not in
,返回结果是布尔值 True
或 False
。使用示例如下图所示。
如果想要查询列表中某元素的索引值,可以使用 index()
获取,当一个元素在列表中出现多次时,该方法只能获取该元素首次出现时的索引值。使用示例如下图所示。
如果想要获取列表中的某个值,直接使用这个值的索引即可。使用示例如下图所示。
Part5列表常用函数
1列表切片
列表切片的使用方式和字符串切片的使用方式几乎完全一样,如果非要说有区别,那区别就在于字符串切片得到的是字符串,而列表切片的结果是列表。不熟悉字符串切片的读者同样可以移步查看。
💡 请移步至下文中 Part4:字符串切片 一节查看字符串切片。
社科大数据平台Python学习系列 | Python 字符串操作(上)
列表切片的简单使用如下,先定义一个如下图所示的列表,然后对其进行切片操作。
如果希望通过索引获取列表中的某个元素,而不是通过切片获取一个列表,只需要传入单个索引值即可,使用示例如下图所示。
2获取列表长度
同字符串一样,我们可以使用 len()
函数获取列表的长度,即列表中元素的个数。使用示例如下图所示。
3获取列表中最大/小的元素
可以分别使用 max()
函数和 min()
函数获取列表中的最大元素和最小元素,前提是列表中的所有元素值是可以互相之间比较大小的。使用示例如下图所示。
4统计列表中元素出现的次数
使用 count()
函数可以统计某个元素在列表中出现的次数,如果列表中没有该元素,得到的结果将会是 0。使用示例如下图所示。
5列表排序
使用 sort()
函数可以永久性地修改列表中元素的排列顺序,默认为升序。使用示例如下图所示。
使用 sorted()
函数可以对列表进行临时排序,并返回临时排序后的列表副本,即需要排序的列表本身没有发生变化。使用示例如下图所示。
6列表顺序反转
使用 reverse()
可以反转列表中元素的排列顺序,这种方法不需要传入任何参数且永久性地修改了列表元素的排列顺序。使用示例如下图所示。
列表的基本操作到这里就介绍完毕啦!
Part6结束语
本期文章我们简单介绍了 Python 中的四种组合数据类型及其分类,并详细地介绍了 Python 组合数据类型中使用极其频繁的列表。本文中讲到的列表相关函数、操作非常多,想要过目不忘是不可能的事情了,想要真正地掌握这些知识,我们需要多多练习、多多使用、多多死记硬背……
下期文章我们将学习组合数据类型中的集合和元组,并介绍 Python 中的可变数据类型与不可变数据类型,下期见。
星标⭐我们不迷路!想要文章及时到,文末“在看”少不了!
点击搜索你感兴趣的内容吧
往期推荐
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
文 | 两米哥
欢迎扫描👇二维码添加关注