专栏名称: 小蚊子数据分析
数据分析知识、培训、招聘分享。
目录
相关文章推荐
参考消息  ·  联合国人员在被拘押期间死亡 ·  昨天  
参考消息  ·  沙拉批特朗普:“严重罪行” ·  昨天  
参考消息  ·  谈及普京,特朗普“拒绝透露细节” ·  2 天前  
参考消息  ·  《哪吒2》“闹到”好莱坞 ·  3 天前  
51好读  ›  专栏  ›  小蚊子数据分析

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

小蚊子数据分析  · 公众号  ·  · 2020-03-13 09:46

正文

Mr.林: 小白,今天我们来学习列表,列表( li s t )是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]


第五个:排序







请到「今天看啥」查看全文