![Python数据分析从小白到专家](https://wfqqreader-1252317822.image.myqcloud.com/cover/745/38209745/b_38209745.jpg)
3.2.1 Python的列表
Python所特有的类型的成员或者所包含的元素是有序排列的,并且允许用户通过下标偏移量访问到它所包含的元素或成员。Python可以通过给定元素的办法初始化一个列表,也可以通过迭代器和for循环语句自动生成有序的元素组作为列表,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_40_1.jpg?sign=1739292003-k2XhIQHN420IlfcIubiD52GYT2lOlgrJ-0-25f4fc439b21474c79c5ed30ec5e021b)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_40_2.jpg?sign=1739292003-PfWIp2BFNe0D4OKhAriAUjusUnFdejIh-0-75a9604702c40d4bb12d3c01e53f71de)
在该示例中使用了is语句判断lis和lis2是否为同一个变量。用户还可以用in和not in判断列表中是否包含某个元素,或者是否不含某个元素,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_40_3.jpg?sign=1739292003-SJJRt8k7n1bUuoIUS1bNGLPBE8mPavYW-0-2fbcfee8bd615aa71d19dd60a73d325e)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_1.jpg?sign=1739292003-DeKsSpV8pqGV9Skl7Hkd7Lrnl0GV0L1h-0-a4ff75afa7da349bb4438b66fad6190d)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_2.jpg?sign=1739292003-GT6eLnEk3l0aBxk7SwSEbWtn2hutDvzX-0-6d14f53d9b0d9d357db2c59c3f0307e8)
如果需要将一个序列重复多次,则可以使用星号(*)运算符。在下面的示例中,1~5这个序列重复了3次。
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_3.jpg?sign=1739292003-Larb8gwSckzenh4G6mx5kPI5GeacsolL-0-fe5be760d7273fceccf535da41554ac7)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_4.jpg?sign=1739292003-pNeJxjW8XXLiQVa3hJFdvGpkH83RznHo-0-8559d6013970ca94f6e8a357da0a2ee7)
Python的列表作为一种数据类型,其中的元素按顺序依次放置。作为数组的“替代品”,它一定会有与数组类似的功能,即依照下标读取列表中存放的元素。不仅如此,Python的列表还可以通过类似字符串切片算法的原理,提取列表中一连串的元素,这是C/C++和Java所不能实现的。这种方式称为“切片操作”或“索引操作”,用中括号“[]”来表示,具体的语法如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_5.jpg?sign=1739292003-uXJcouBHyux6P1N8agvuMKKgxfyr7CKt-0-27b16b08089ea8b72dfde93db25219c4)
List是被操作的列表;startIndex是切片开始的序号;endIndex是切片结束的序号;stepNumber是切片的间隔(或步长),默认为1,可以与第二个冒号一起省略。startIndex的默认值是0,可省略不写,即从第一个序号开始切片;endIndex默认是最后一个元素,序号是-1,使用的是逆序序列的索引。正序索引从0开始到n-1;而逆序索引从-1开始到-n。Python的列表的索引规则如图3-2所示。
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_6.jpg?sign=1739292003-cXaldAPCsIrxBpbCDcpblpmtV3FZXBec-0-a658b294acae97137640db32cb4a63da)
图3-2 Python的列表的索引规则
Python切片操作的简单示例如下所示。
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_42_1.jpg?sign=1739292003-sb9OYh4Mgphvaqfa5X9fv2ScjXNf0MZ8-0-316be809d13bee5835ff3e1e9317947d)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_42_2.jpg?sign=1739292003-s3mJfT7pQKxQYktGJ7U91NJz1vWye0as-0-bd3552040accaf940c53232cb150e030)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_43_1.jpg?sign=1739292003-5hiwkv29FZzQ5hbmVSLXy5zJeqFMM5pJ-0-830250905dd4b6a3af5451aa415f0b80)
切片操作还可以和for循环语句结合使用,这里以输出一个金字塔的程序为例进行介绍,代码如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_43_2.jpg?sign=1739292003-NcZgUbFIqB5yvr8DuvfXcCJ7nnqJyrgS-0-f3acadcafc7de07b32e1e5e230d4f934)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_43_3.jpg?sign=1739292003-4G3ea6Xdbqzez8NT0Mw9coMWNTzdHY1e-0-16363659f631d89cdd2630314e28aba9)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_44_1.jpg?sign=1739292003-y90A8HSoaH2nT53mJdcxjPXi1z2vLfSQ-0-bc43b3fac44400da365a8ece06e8c6d1)
Python的列表的内建函数如表3-4所示。
表3-4 Python的列表的内建函数
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_44_2.jpg?sign=1739292003-SGpsnDOPsecqwveg9eSu8UTcgGhPaRSC-0-1cab182c6140c892790dfa0298e07097)