![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=1738819049-BUYtKQ7X9KK2uhhoyOyCFSIx04QQNJbp-0-07cf3fc9d4b90886da850c345a56508c)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_40_2.jpg?sign=1738819049-1YCHNhS0gLwCVOae074UPjlSJQcNuG9y-0-c563b4a11016f2f8e99eaabc404b8533)
在该示例中使用了is语句判断lis和lis2是否为同一个变量。用户还可以用in和not in判断列表中是否包含某个元素,或者是否不含某个元素,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_40_3.jpg?sign=1738819049-i0scZyMRZobvRkkfuWHWvVBvVxmBBtnf-0-c362a266b68f0d8f716fddcf17b6ab83)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_1.jpg?sign=1738819049-wosBWLCqGVO0X42yRpIeqxfO3ABpj8hA-0-b8cb48c96ebf7372041cce302f2f7728)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_2.jpg?sign=1738819049-MPiOfALtwyZM3IXxTgiy7KXZUsdoGL6m-0-8ef862aba7f5a7032f7f0e4036d1dc22)
如果需要将一个序列重复多次,则可以使用星号(*)运算符。在下面的示例中,1~5这个序列重复了3次。
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_3.jpg?sign=1738819049-Ku2jPWkbAU94DKvEtjWJwAsnJ1zHcc5f-0-0e222bed14150b8c80de970903c14e80)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_4.jpg?sign=1738819049-udB4HmuINSkTB0sqJjLdL2bDWNVL0Fa0-0-aa6e4b79c07faf2527a44235b03f827f)
Python的列表作为一种数据类型,其中的元素按顺序依次放置。作为数组的“替代品”,它一定会有与数组类似的功能,即依照下标读取列表中存放的元素。不仅如此,Python的列表还可以通过类似字符串切片算法的原理,提取列表中一连串的元素,这是C/C++和Java所不能实现的。这种方式称为“切片操作”或“索引操作”,用中括号“[]”来表示,具体的语法如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_41_5.jpg?sign=1738819049-Zx9NZ4J0n29kzZVcRKdSF7sqZdtNCCnl-0-0ecc1baa1710330a23c7211cc4195f13)
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=1738819049-v0tTySa3FXIWROhTMzx951m047rlLt1x-0-0840f28c5f65b83c49e904f337b228ae)
图3-2 Python的列表的索引规则
Python切片操作的简单示例如下所示。
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_42_1.jpg?sign=1738819049-NAOGw2HHMMtSFUAwgNJcdbjqMHJ1Dn4O-0-4365d276377e91a5c496f5628f6d29aa)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_42_2.jpg?sign=1738819049-AQvMjdGeQsjJqHMvmgPVNnIC1Pz5JtFD-0-83655eb0a0eaf023b89cf01a63e67cf5)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_43_1.jpg?sign=1738819049-WEpTqGHmxRvlyZ3uJ9F6OM6PCCtv0KiF-0-93a4694f2a53cfbf5046ce881703eca2)
切片操作还可以和for循环语句结合使用,这里以输出一个金字塔的程序为例进行介绍,代码如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_43_2.jpg?sign=1738819049-rSXovMrrc6b3zy7Swk56azz0GHYWHiT6-0-767fb9c72a2655824a16b5b66bae139b)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_43_3.jpg?sign=1738819049-cyPaM3UlNJWeTWLDY6iCV9hBz1ImPnPw-0-0e4882f2b75c5ad70944436321c95bde)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_44_1.jpg?sign=1738819049-F68MNZVEqxqF1JEYB68mQuyvZR0qBcdy-0-2b464a2b76e5bc3ac667112ac77297c6)
Python的列表的内建函数如表3-4所示。
表3-4 Python的列表的内建函数
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_44_2.jpg?sign=1738819049-mhUgLNTK4U00g1Z7UWmV7sp7msriqzG7-0-e129babd72e3a97fd6e16a85bb38d4b2)