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)是一种有序的组合数据类型,可以存放零到多个不同类型的元素(包括列表类型本身以及其他组合数据类型,事实上,列表可以存放几乎所有数据类型),不同元素之间使用逗号分隔,所有元素都存放在方括号[]内。如下图所示。




python 多个类组合 python的组合类数据_python


2如何创建列表

创建列表非常容易,我们使用方括号[]将一组数据包围起来,其中各数据之间使用逗号分隔开,这样列表就创建成功了。例如:

list_create = ['Str', 123, 1.5]
list_create = ['Str', [0, 1, 2], []]

我们也可以使用 list()


python 多个类组合 python的组合类数据_Powered by 金山文档_02


使用上述方法还可以将其他可迭代对象转化为列表对象。例如集合,元组等,这里不再做演示。

3列表在数据处理中的使用场景

列表的使用非常广泛,从数据处理的角度出发,我们常见的数据表与列表就有着密不可分的关系。


python 多个类组合 python的组合类数据_学习_03


上图所示数据表是通过 Python 中数据处理模块 Pandas 定义的数据表,该表中任何一行、一列数据都可以与列表互相转化。我们可以将一列(或一行)数据转换为一个列表,也可以把一个列表添加到表中作为一列(或一行)。由于列表中还可以再存储列表,所以即使是一整张表也可以通过一个列表来表示,上图所示数据表正是通过这种方式定义的,如下图所示。


python 多个类组合 python的组合类数据_python_04


当我们需要将上表中某个字段转为一个列表时,可以这样做:


python 多个类组合 python的组合类数据_开发语言_05


如果我们需要向表中添加一个字段,字段名为 “指标D”,可以这样做:


python 多个类组合 python的组合类数据_python_06


总之列表的用处非常多,更多的使用场景和用法需要大家在学习之后探索。

Part4如何增、删、改、查列表中的元素

首先,列表是有序序列,具有索引属性,列表索引与字符串索引性质完全一样,不熟悉索引的读者可以移步查看索引相关知识与用法。

💡 请移步至下文中 Part4:字符串切片

1向列表中增加元素

(1)使用 append()


python 多个类组合 python的组合类数据_python 多个类组合_07


(2)使用 insert()


python 多个类组合 python的组合类数据_python 多个类组合_08


(3)使用 extend()


python 多个类组合 python的组合类数据_Powered by 金山文档_09


(4)使用运算符 + 将两个列表合二为一,这种方法与使用 extend()


python 多个类组合 python的组合类数据_开发语言_10


(5)使用运算符 *


python 多个类组合 python的组合类数据_python_11


2删除列表中的元素

(1)使用 remove() 删除列表中的元素,将列表中需要删除的元素值传入该函数中,就可以删除列表中对应的元素,这个删除操作没有返回值。当需要删除的元素在列表中出现多次时,remove() 方法只会删除第一次出现的该元素,即索引值最小的一个。当列表中没有要删除的值时,remove()


python 多个类组合 python的组合类数据_开发语言_12


(2)使用 pop() 删除指定索引位置的元素。只需将待删除元素的索引传入 pop() 即可,如果不传入任何值,会删除列表中最后一个元素。如果传入了错误的索引值,pop()会报错。此外,该方法会返回被删除的元素值。使用示例如下图所示。


python 多个类组合 python的组合类数据_开发语言_13


(3)使用 del


python 多个类组合 python的组合类数据_Powered by 金山文档_14


(4)使用 clear()


python 多个类组合 python的组合类数据_python_15


3修改列表中的元素

修改列表中的元素只需要将新的元素值赋值给旧元素值所在的索引位置即可。使用示例如下图所示。


python 多个类组合 python的组合类数据_开发语言_16


4查询列表中的元素

如果是想要查询某元素是否存在于列表中,我们可以使用成员运算符 in 或 not in,返回结果是布尔值 True 或 False。使用示例如下图所示。


python 多个类组合 python的组合类数据_Powered by 金山文档_17


如果想要查询列表中某元素的索引值,可以使用 index()


python 多个类组合 python的组合类数据_python_18


如果想要获取列表中的某个值,直接使用这个值的索引即可。使用示例如下图所示。


python 多个类组合 python的组合类数据_python 多个类组合_19


Part5列表常用函数

1列表切片

列表切片的使用方式和字符串切片的使用方式几乎完全一样,如果非要说有区别,那区别就在于字符串切片得到的是字符串,而列表切片的结果是列表。不熟悉字符串切片的读者同样可以移步查看。

💡 请移步至下文中 Part4:字符串切片

列表切片的简单使用如下,先定义一个如下图所示的列表,然后对其进行切片操作。


python 多个类组合 python的组合类数据_Powered by 金山文档_20


python 多个类组合 python的组合类数据_python_21


如果希望通过索引获取列表中的某个元素,而不是通过切片获取一个列表,只需要传入单个索引值即可,使用示例如下图所示。


python 多个类组合 python的组合类数据_python_22


2获取列表长度

同字符串一样,我们可以使用 len()


python 多个类组合 python的组合类数据_开发语言_23


3获取列表中最大/小的元素

可以分别使用 max() 函数和 min() 函数获取列表中的最大元素和最小元素,前提是列表中的所有元素值是可以互相之间比较大小的。使用示例如下图所示。


python 多个类组合 python的组合类数据_python 多个类组合_24


4统计列表中元素出现的次数

使用 count()


python 多个类组合 python的组合类数据_python 多个类组合_25


5列表排序

使用 sort()


python 多个类组合 python的组合类数据_python_26


使用 sorted()


python 多个类组合 python的组合类数据_学习_27


6列表顺序反转

使用 reverse()


python 多个类组合 python的组合类数据_Powered by 金山文档_28


列表的基本操作到这里就介绍完毕啦!

Part6结束语

本期文章我们简单介绍了 Python 中的四种组合数据类型及其分类,并详细地介绍了 Python 组合数据类型中使用极其频繁的列表。本文中讲到的列表相关函数、操作非常多,想要过目不忘是不可能的事情了,想要真正地掌握这些知识,我们需要多多练习、多多使用、多多死记硬背……

下期文章我们将学习组合数据类型中的集合和元组,并介绍 Python 中的可变数据类型与不可变数据类型,下期见。