
2.6 数据结构——列表
2.6.1 列表的概念
列表(list)是用来存储一组有序数据元素的数据结构,元素之间用逗号分隔。列表中的数据元素应该包括在方括号中,而且列表是可变的数据类型,一旦创建了一个列表,你可以添加、删除或者搜索列表中的元素。在方括号中的数据可以是 int 型,也可以是str型。
2.6.2 新建一个列表
新建列表的方法比较简单,直接将数据元素用方括号括起来就行,下面是几种常见类型列表的新建实例。
建立一个空列表
当方括号中没有任何数据元素时,列表就是一个空列表。

建立一个int类型列表
当方括号的数据元素全部为int类型时,这个列表就是int类型列表。

建立一个str类型列表
当方括号中的数据元素全部为str类型时,这个列表就是str类型列表。

建立一个int+str类型列表
当方括号中的数据元素既有int类型,又有str类型时,这个列表就是int+str类型列表。

2.6.3 列表的复制
列表的复制和字符串的复制类似,也是利用*操作符。

2.6.4 列表的合并
列表的合并就是将两个现有的list合并在一起,主要有两种实现方式,一种是利用+操作符,它和字符串的连接一致;另外一种用的是extend()函数。
直接将两个列表用+操作符连接即可达到合并的目的,列表的合并是有先后顺序的。

将列表B合并到列表A中,用到的方法是A.extend(B),将列表A合并到列表B中,用到的方法是B.extend(A)。

2.6.5 向列表中插入新元素
列表是可变的,也就是当新建一个列表后你还可以对这个列表进行操作,对列表进行插入数据元素的操作主要有append()和insert()两个函数可用。这两个函数都会直接改变原列表,不会直接输出结果,需要调用原列表的列表名来获取插入新元素以后的列表。
函数append()是在列表末尾插入新的数据元素。

函数insert()是在列表的指定位置插入新的数据元素。

2.6.6 获取列表中值出现的次数
利用count()函数获取某个值在列表中出现的次数。
例如,全校成绩排名前5的5个学生对应的班级组成一个列表,想看一下你所在的班级(一班)有几个人在这个列表中。

2.6.7 获取列表中值出现的位置
获取值出现的位置,就是看该值位于列表中的哪里。
已知公司的所有销售业绩是按降序排列的,想看一下杨新竹的业绩排在第几。

上面结果是3,也就是杨新竹的业绩排第四名。
2.6.8 获取列表中指定位置的值
获取指定位置的值利用的方法和字符串索引是一致的,主要有普通索引和切片索引两种。
普通索引
普通索引是获取某一特定位置的数。

切片索引
切片索引是获取某一位置区间内的数。

2.6.9 删除列表中的值
对列表中的值进行删除时,有pop()和remove()两个函数可用。
pop()函数是根据列表中的位置进行删除,也就是删除指定位置的值。

remove()函数是根据列表中的元素进行删除,也就是删除某一元素。

2.6.10 对列表中的值进行排序
对列表中的值排序利用的是sort()函数,sort()函数默认采用升序排列。
