首页   

跟小白学Python数据分析——列表

小蚊子数据分析  ·  · 4 年前

Mr.林:小白,今天我们来学习列表,列表(list)是Python中内置的一种最基本的数据结构。

小白:数据结构?什么是数据结构呀?

Mr.林:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。它是计算机存储、组织数据的方式。可以看作一种存储数据的容器。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

Python中内置的数据结构有列表、元组、字典、集合,其中列表是我们最常用的一种数据结构。

小白:内置的?那就是还有其他数据结构?

Mr.林:没错,像之前使用过的数据框(dataframe),就是Pandas中的数据结构,这个后面再说。

我们先来学习列表,列表是一组用方括号括起来、逗号分隔的数据。列表的元素可以是任何数据类型的,但使用时通常各个元素的数据类型是相同的,特别是进行数据分析时,同一列表的数据元素的数据类型都必须是相同的。

现在我们就来定义一个名为a的列表,并赋值1~5的自然数序列,然后用type函数查看a的类型,得到的结果是list,也就是列表。

a = [12345]
type(a)
list


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

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

小白:那列表如何使用呢?

Mr.林:我们先了解一个概念——索引,

索引是用于快速查询数据的一种数据结构,索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当数据量大时,查找索引比起要查找全部内容快很多,并且由于索引数据量小,也非常节省计算机资源。

列表的索引代表列表中各个数据元素在列表中的位置,第一个数据元素索引是0,第二个数据元素是1,第三个数据元素是2,依次向后递增。

对,没错,索引就是从0开始,而不是从1开始,刚接触编程的朋友可能很不习惯,没关系的,你用久了就习惯了。


刚才所说的是正向索引,也就是从左到右、从前往后排列,如果从右往左、从后往前排列,那就是负向索引,负向索引是从-1开始,然后是-2,依次向前递减。

现在我们就来看如何使用操作列表了,列表的常用操作有:查、增、删、改、排序、统计


第一个:查

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

a = [12345]a[0]
1
a[4]
5
a[-3]
3

小白:那我能取多个值吗?

Mr.林:可以的,需要使用切片功能,通过 变量名[开始索引值:结束索引值:步长] 的方式访问多个值。

一个完整的切片表达式包含两个冒号“:”,用于分隔三个参数(开始索引值:结束索引值:步长),当只有前面一个冒号“:”时,默认第三个参数步长=1。

步长:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正号表示从左往右取值,负号表示从右往左取值。当步长参数省略时,默认步长为1,即从左往右以增量1取值。

切取方向非常重要!切取方向非常重要!切取方向非常重要!”,重要的事情说三遍!

开始索引值:表示起始索引(包含该索引本身);该参数省略时,表示从对象“端点”开始取值,至于是从左往右还是从右往左开始,则由步长参数的正负决定,步长为正从左往右开始,为负从右往左开始。

结束索引值:表示终止索引(不包含该索引本身);该参数省略时,表示一直取到另外一个数据”端点“。

下面这两个代码的效果是等价的,从左第1位取到第3位,注意结束索引值为3,不代表就是取到第3位,而是对应第4位,但是结束的位置是不包含关系,所以就是取到第3位。

a = [12345]a[0:3]
[123]
a[:3]
[123]


第二个:

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

a = [12345]a.append(6)
[123456]


小白:那我能一次增加多个值吗?

Mr.林:当然可以,使用extend方法,就可以往列表尾部添加数据元素。

a = [12345]
a.extend([78910])
[1234578910]


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

a = [12345]a + [78910]
[12345678910]


小白:只能在列表最后增加吗?可不可以在指定位置加?

Mr.林:当然可以,使用insert方法,就可以往指定的索引值位置插入数据元素,例如我们需要往列表a的索引值为3,也就是第4位的位置插入一个10


a = [12345]a.insert(310)
[1231045]


第三个:删

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

a = [12345]
del a[3]
[1235]

a.pop(3)
[123]

小白:这是按索引位置删的,要是我不知道位置,只知道我要删什么值,该怎么办呢?

Mr.林:可以使用remove方法删除指定的数据元素,例如我们需要删除4这个数据元素

a = [12345]
a.remove(4)
[1235]


第四个:改

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

a = [12345]
a[3] = 10
[123105]


第五个:排序

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

a = [108345]
a.sort()
[345810]


小白:那如果是降序呢?

Mr.林:只需设置reverse=True即可

a = [108345]
a.sort(reverse=True)
[108543]


第六个:统计

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

a = [12345]
len(a)
5


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

a = [12345]
max(a)
5
min(a)
1


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


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

跟小白学Python数据分析——描述性统计分析

跟小白学Python数据分析——分组分析

-----------------

希望系统、快速学习Python数据分析知识,可以学习

数据分析专家@文彤老师

跟文彤老师学Python数据分析》系列视频课程

包含以下三门课程

Python数据分析--玩转Pandas

玩转Python统计分析

Python数据分析--玩转数据可视化

如有问题也可添加课程助理微信号咨询,添加时请注明咨询课程

参加课程学习,可享受6折优惠

购买课程直接点击文末“阅读原文”进入即可

  

推荐文章
© 2022 51好读
删除内容请联系邮箱 2879853325@qq.com