![Python入门很简单](https://wfqqreader-1252317822.image.myqcloud.com/cover/196/31476196/b_31476196.jpg)
上QQ阅读APP看书,第一时间看更新
6-7 嵌套列表
嵌套列表的基本思想如下。
num=[1, 2, 3, 4, 5, [6, 7, 8]]
对上述而言,num是一个列表,在这个列表内有另一个列表[6, 7, 8],因为内部列表的索引值是5,所以可以用num[5]获得这个元素列表的内容。
![](https://epubservercos.yuewen.com/FA4957/17035792704284606/epubprivate/OEBPS/Images/figer1275.jpg?sign=1738866626-8gbx8BpQrtaX5lYQgzeF6rZTdaRhmbrd-0-3f7923ee86048a55257b7e4ade8ecc83)
如果想要存取列表内的列表元素,可以使用下列格式。
num[索引1][索引2]
索引1是元素列表原先的索引位置,索引2是元素列表内部的索引。
实例1:列出列表内的列表元素值。
![](https://epubservercos.yuewen.com/FA4957/17035792704284606/epubprivate/OEBPS/Images/figer1276.jpg?sign=1738866626-LrVMYnDhIybBKaL2lZhDLIYwB9QDs87M-0-53c6ce2c5134ff08f4908a046b16de3b)
嵌套列表的主要应用是,例如,可以用这种格式存储NBA球员Lebron James的数据,如下所示。
James=[['Lebron James','SF','12/30/1984'], 23, 19, 22, 31, 18]
其中,第一个元素是列表,用于存储Lebron James个人资料,其他则是存储每场得分数据。
程序实例ch6_32.py:扩充ch6_30.py,先列出Lebron James个人资料再计算哪一个场次得到最高分。(程序第2行中SF全名是Small Forward,小前锋。)
![](https://epubservercos.yuewen.com/FA4957/17035792704284606/epubprivate/OEBPS/Images/figer1277.jpg?sign=1738866626-q7LaiNkKQJJ3KyoKHv5IMIvyAwLnd4Q1-0-f83e3c687d3bff5b45cbb22323ef29c8)
执行结果
![](https://epubservercos.yuewen.com/FA4957/17035792704284606/epubprivate/OEBPS/Images/figer1278.jpg?sign=1738866626-cWYPHHXxInogK1yHVaHYzXHNWP6BYTe6-0-d6e72ede80869aa4dab39cd1ec8b57fc)
程序实例ch6_32_1.py:用Python重新设计ch6_32.py,这个程序主要是将第6~8行改成下列方式处理。
![](https://epubservercos.yuewen.com/FA4957/17035792704284606/epubprivate/OEBPS/Images/figer1279.jpg?sign=1738866626-1XatMl1RFZvdQWXHtiFJ9iaLHjPhfGbD-0-1e4ac9a62e310f06f30222567310ad4c)
执行结果 与ch6_32.py相同。
6-7-1 再谈append()
在6-4-1节有提过可以使用append()方法,将元素插入列表的末端,其实也可以使用append()函数将某一列表插入另一列表的末端,方法与插入元素方式相同,这时就会产生嵌套列表的效果。它的使用格式如下。
列表A.append(列表B) #列表B将接在列表A末端
程序实例ch6_33.py:使用append()将列表插入另一列表的末端。
![](https://epubservercos.yuewen.com/FA4957/17035792704284606/epubprivate/OEBPS/Images/figer1280.jpg?sign=1738866626-DkN37t6WuWlBCmoNAVhZSMGsqBNzaqRZ-0-345fd0b47d1e75d42aaf97fbd5b8d6ff)
执行结果
![](https://epubservercos.yuewen.com/FA4957/17035792704284606/epubprivate/OEBPS/Images/figer1281.jpg?sign=1738866626-OP4KL9dS7Ll2ppTHRdm7eVkIwHN5on25-0-f4e3b444b50ed20ebdde9cf7c58e7f83)
6-7-2 extend()
这也是两个列表连接的方法,与append()类似,不过这个方法只适用两个列表连接,不能用于一般元素。同时在连接后,extend()会将列表分解成元素,一一插入列表。它的使用格式如下。
列表A.extend(列表B) #列表B将分解成元素插入列表A末端
程序实例ch6_34.py:使用extend()方法取代ch6_32.py,并观察执行结果。
![](https://epubservercos.yuewen.com/FA4957/17035792704284606/epubprivate/OEBPS/Images/figer1282.jpg?sign=1738866626-YXyK5WS9Fim7cYOgWedMoMjegeQTFhEX-0-4768e7a112afa3879cdec5c8e572f176)
执行结果
![](https://epubservercos.yuewen.com/FA4957/17035792704284606/epubprivate/OEBPS/Images/figer1283.jpg?sign=1738866626-ZGX7q6LDS3gh1aRwXhfb7UZe4ThwsfQd-0-5af142e092181e4d46f7aa8cc44d777f)
上述语句执行后cars1将是含有5个元素的列表,每个元素都是字符串。