Mr.林:小白,今天我们来学习列表,列表(list)是Python中内置的一种最基本的数据结构。 小白:数据结构?什么是数据结构呀? Mr.林:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。它是计算机存储、组织数据的方式。可以看作一种存储数据的容器。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 Python中内置的数据结构有列表、元组、字典、集合,其中列表是我们最常用的一种数据结构。 小白:内置的?那就是还有其他数据结构? Mr.林:没错,像之前使用过的数据框(dataframe),就是Pandas中的数据结构,这个后面再说。 我们先来学习列表,列表是一组用方括号括起来、逗号分隔的数据。列表的元素可以是任何数据类型的,但使用时通常各个元素的数据类型是相同的,特别是进行数据分析时,同一列表的数据元素的数据类型都必须是相同的。 现在我们就来定义一个名为a的列表,并赋值1~5的自然数序列,然后用type函数查看a的类型,得到的结果是list,也就是列表。

a = [1, 2, 3, 4, 5]
type(a)
list

我们再来定义一个名为b的列表,里面赋值的是字符,所以各个字符需要使用单引号引起来。

b = ['a', 'b', 'c', 'd', 'e']

小白:那列表如何使用呢? Mr.林:我们先了解一个概念——索引, 索引是用于快速查询数据的一种数据结构,索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当数据量大时,查找索引比起要查找全部内容快很多,并且由于索引数据量小,也非常节省计算机资源。 列表的索引代表列表中各个数据元素在列表中的位置,第一个数据元素索引是0,第二个数据元素是1,第三个数据元素是2,依次向后递增。 对,没错,索引就是从0开始,而不是从1开始,刚接触编程的朋友可能很不习惯,没关系的,你用久了就习惯了。

刚才所说的是正向索引,也就是从左到右、从前往后排列,如果从右往左、从后往前排列,那就是负向索引,负向索引是从-1开始,然后是-2,依次向前递减。 现在我们就来看如何使用操作列表了,列表的常用操作有:查、增、删、改、排序、统计

第一个:查 可以通过 变量名[索引值] 的方式访问单个值

a = [1, 2, 3, 4, 5]a[0]
1
a[4]
5
a[-3]
3

小白:那我能取多个值吗? Mr.林:可以的,需要使用切片功能,通过 变量名[开始索引值:结束索引值:步长] 的方式访问多个值。 一个完整的切片表达式包含两个冒号“:”,用于分隔三个参数(开始索引值:结束索引值:步长),当只有前面一个冒号“:”时,默认第三个参数步长=1。 步长:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正号表示从左往右取值,负号表示从右往左取值。当步长参数省略时,默认步长为1,即从左往右以增量1取值。 切取方向非常重要!切取方向非常重要!切取方向非常重要!”,重要的事情说三遍! 开始索引值:表示起始索引(包含该索引本身);该参数省略时,表示从对象“端点”开始取值,至于是从左往右还是从右往左开始,则由步长参数的正负决定,步长为正从左往右开始,为负从右往左开始。 结束索引值:表示终止索引(不包含该索引本身);该参数省略时,表示一直取到另外一个数据”端点“。 下面这两个代码的效果是等价的,从左第1位取到第3位,注意结束索引值为3,不代表就是取到第3位,而是对应第4位,但是结束的位置是不包含关系,所以就是取到第3位。

a = [1, 2, 3, 4, 5]a[0:3]
[1, 2, 3]
a[:3]
[1, 2, 3]

第二个:增 Mr.林:列表有一个append方法,可以往列表尾部增加一个数据元素。例如我们需要往列表a增加6这个数。

a = [1, 2, 3, 4, 5]a.append(6)
[1, 2, 3, 4, 5, 6]

小白:那我能一次增加多个值吗? Mr.林:当然可以,使用extend方法,就可以往列表尾部添加数据元素。


还可以直接使用加号拼接即可。

a = [1, 2, 3, 4, 5]a + [7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

小白:只能在列表最后增加吗?可不可以在指定位置加? Mr.林:当然可以,使用insert方法,就可以往指定的索引值位置插入数据元素,例如我们需要往列表a的索引值为3,也就是第4位的位置插入一个10。

a = [1, 2, 3, 4, 5]a.insert(3, 10)
[1, 2, 3, 10, 4, 5]

第三个:删 Mr.林:可以使用 del 语句或pop方法进行删除列表的元素,例如我们需要删除索引值为3,也就是第4位的位置上的值。

a = [1, 2, 3, 4, 5]
del a[3]
[1, 2, 3, 5]

a.pop(3)
[1, 2, 3]

小白:这是按索引位置删的,要是我不知道位置,只知道我要删什么值,该怎么办呢? Mr.林:可以使用remove方法删除指定的数据元素,例如我们需要删除4这个数据元素。

a = [1, 2, 3, 4, 5]
a.remove(4)
[1, 2, 3, 5]

第四个:改 Mr.林:可以使用 变量名[索引值] =更改值 的方式进行更改,例如我们需要将索引值为3的值,也就是第4位的位置上的值改为 10。

a = [1, 2, 3, 4, 5]
a[3] = 10
[1, 2, 3, 10, 5]

第五个:排序 Mr.林:可以使用sort方法进行排序,括号里的参数省略就是升序。

a = [10, 8, 3, 4, 5]
a.sort()
[3, 4, 5, 8, 10]

小白:那如果是降序呢? Mr.林:只需设置reverse=True即可。

a = [10, 8, 3, 4, 5]
a.sort(reverse=True)
[10, 8, 5, 4, 3]

第六个:统计 Mr.林:可以使用len()函数返回列表数据元素个数。

a = [1, 2, 3, 4, 5]
len(a)
5

Mr.林:另外还可以使用max、min函数统计最大值、最小值。

a = [1, 2, 3, 4, 5]
max(a)
5
min(a)
1

Mr.林:好了,列表常用操作就介绍这里。下次我们学习Pandas中的数据结构——数据框(dataframe)。小白你回去要多多练习,多敲代码。

如果你喜欢本文,可以点击右下角在看 如果你在跟着学习,请在留言区留言:打卡 如果你刚看到本文,可以查看本系列历史文章跟着学习: 跟小白学Python数据分析——Anaconda安装 跟小白学Python数据分析——使用spyder 跟小白学Python数据分析——数据导入1 跟小白学Python数据分析——数据导入2 跟小白学Python数据分析——描述性统计分析 跟小白学Python数据分析——分组分析

长按识别下方二维码,并关注公众号 1.回复“PY”领取1GB Python数据分析资料 2.回复“BG”领取5GB 名企数据分析报告