![对比Excel,轻松学习Python数据分析(入职数据分析师系列)](https://wfqqreader-1252317822.image.myqcloud.com/cover/712/25462712/b_25462712.jpg)
2.6 数据结构——列表
2.6.1 列表的概念
列表(list)是用来存储一组有序数据元素的数据结构,元素之间用逗号分隔。列表中的数据元素应该包括在方括号中,而且列表是可变的数据类型,一旦创建了一个列表,你可以添加、删除或者搜索列表中的元素。在方括号中的数据可以是 int 型,也可以是str型。
2.6.2 新建一个列表
新建列表的方法比较简单,直接将数据元素用方括号括起来就行,下面是几种常见类型列表的新建实例。
建立一个空列表
当方括号中没有任何数据元素时,列表就是一个空列表。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0051-0074.jpg?sign=1739284896-6SZWzj9mMQRGh28icnAA9HaV9M1cGc5A-0-6043e7a9cd6e8023f830979c54841041)
建立一个int类型列表
当方括号的数据元素全部为int类型时,这个列表就是int类型列表。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0051-0075.jpg?sign=1739284896-hjrTmIMTY8mql4s5EnW1Uu4qDCIrE7SK-0-cad9aa45688494affd229feaa5affeba)
建立一个str类型列表
当方括号中的数据元素全部为str类型时,这个列表就是str类型列表。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0051-0076.jpg?sign=1739284896-Aly0smr1Rn3k3EJq6jtfUbFG6MhmbCep-0-f1720c2e5ad099a7c76099c99f609f62)
建立一个int+str类型列表
当方括号中的数据元素既有int类型,又有str类型时,这个列表就是int+str类型列表。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0052-0077.jpg?sign=1739284896-LRGoPoJjqRSqxD2S0kK3EWKiBEhnCAPm-0-41f3d21d8b213f089226086a924fc4df)
2.6.3 列表的复制
列表的复制和字符串的复制类似,也是利用*操作符。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0052-0078.jpg?sign=1739284896-cVht7j5B7af5IKzSYYjLma1uUcEWL3pI-0-e816e7e73c3fef675674473f2722b63d)
2.6.4 列表的合并
列表的合并就是将两个现有的list合并在一起,主要有两种实现方式,一种是利用+操作符,它和字符串的连接一致;另外一种用的是extend()函数。
直接将两个列表用+操作符连接即可达到合并的目的,列表的合并是有先后顺序的。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0052-0079.jpg?sign=1739284896-oRMKLFbaFpAlDAf1QNae1OuPwmn0zzpW-0-7c75478b0a350a143f114cc9200d0e6f)
将列表B合并到列表A中,用到的方法是A.extend(B),将列表A合并到列表B中,用到的方法是B.extend(A)。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0052-0080.jpg?sign=1739284896-vW4cjEPsrOSQhiX3MTGX5x8VNfN3PaYn-0-745c689e8946eaf678686f8072323d69)
2.6.5 向列表中插入新元素
列表是可变的,也就是当新建一个列表后你还可以对这个列表进行操作,对列表进行插入数据元素的操作主要有append()和insert()两个函数可用。这两个函数都会直接改变原列表,不会直接输出结果,需要调用原列表的列表名来获取插入新元素以后的列表。
函数append()是在列表末尾插入新的数据元素。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0053-0081.jpg?sign=1739284896-AvKkafGILK3I3KzU24mOq0S7BwJhmIDA-0-9021b8aea347336c37160c19da026ebc)
函数insert()是在列表的指定位置插入新的数据元素。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0053-0082.jpg?sign=1739284896-75Mb2HsZm3sPOXNmFZEczdE9ojNaEplp-0-b11d976a6da7472ace5fb6056f00929b)
2.6.6 获取列表中值出现的次数
利用count()函数获取某个值在列表中出现的次数。
例如,全校成绩排名前5的5个学生对应的班级组成一个列表,想看一下你所在的班级(一班)有几个人在这个列表中。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0053-0083.jpg?sign=1739284896-I0he1ZaPFzHEi78PW4gCgYXP0vfbjjRH-0-887719e35c62c6f0b59dfaa108a654c2)
2.6.7 获取列表中值出现的位置
获取值出现的位置,就是看该值位于列表中的哪里。
已知公司的所有销售业绩是按降序排列的,想看一下杨新竹的业绩排在第几。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0053-0084.jpg?sign=1739284896-uvJrg34q7n3ykdvIyr7PvefMmsK0qrpW-0-d8dfa6b286ccf1f64c054d688e13335a)
上面结果是3,也就是杨新竹的业绩排第四名。
2.6.8 获取列表中指定位置的值
获取指定位置的值利用的方法和字符串索引是一致的,主要有普通索引和切片索引两种。
普通索引
普通索引是获取某一特定位置的数。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0054-0085.jpg?sign=1739284896-ksTlquKsbSmJ5rnmGzOUgGVehyF3hAaO-0-faa316542eafbd445aa10fbc3e17bd86)
切片索引
切片索引是获取某一位置区间内的数。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0054-0086.jpg?sign=1739284896-cFhbv6imxBskaql1FRfmJIoCAB1vYFHm-0-e683992f5ab5a2f1a0a2a6e032cd8678)
2.6.9 删除列表中的值
对列表中的值进行删除时,有pop()和remove()两个函数可用。
pop()函数是根据列表中的位置进行删除,也就是删除指定位置的值。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0054-0087.jpg?sign=1739284896-tzwPxUWN1zoepikRVQPj7fLGQLxVMaUg-0-15f014910edfe45d35c8a04269696c3a)
remove()函数是根据列表中的元素进行删除,也就是删除某一元素。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0054-0088.jpg?sign=1739284896-6Wx6SZOpZTarXCaD6Yc7b1bdKQTRrrWf-0-94d9c0a2bfc9007a759965f2789d6f02)
2.6.10 对列表中的值进行排序
对列表中的值排序利用的是sort()函数,sort()函数默认采用升序排列。
![](https://epubservercos.yuewen.com/3B6FA6/13916129805955706/epubprivate/OEBPS/Images/35793-0055-0089.jpg?sign=1739284896-v4pFc8mxJGsQXyjqq1esA1Yh08XTAkz6-0-a276422cc039288e9bf6a23a6d68c39f)