- 深度学习:从Python到TensorFlow应用实战
- 叶虎
- 515字
- 2020-08-28 19:50:29
2.6 列表
可以使用一个列表(List)存储任何类型的对象。例如:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P33_3174.jpg?sign=1739688723-i4fSaeOSWX9dMQ72YeuQB0COsjnPjTRE-0-39a430628df082f7a57830669eec35ab)
输出:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3176.jpg?sign=1739688723-A9WNMogGtverIQBlQ1vk8TTXCeyhEjSH-0-2aa523764f3bb0971544c6cddf901c49)
此外,列表甚至可以将另一个列表作为项目。这称为嵌套列表。
my_list = ["mouse", [8, 4, 6], ['a']] #嵌套列表
使用range函数生成列表:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3177.jpg?sign=1739688723-Y6gLDfZOZx0Kti3Mhu9rvBs1JWlwZc4g-0-957b8ded8a5b05fd39175ea9b46df49d)
可以使用赋值运算符(=)来更改一个项目或项目范围。例如:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3178.jpg?sign=1739688723-AEzadza4yZWDJM0ROO2Hpw3E3gbE5l9K-0-796bfd91155d880aa7199990a8e177fe)
可以使用方法append()将一个项添加到列表中,或使用方法extend()添加多个项。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3180.jpg?sign=1739688723-R67LPDyMLItGSEUUdUsjRNrh7Ktaj1y1-0-dbb65913c96d48eb5712b14f88f0bb32)
可以使用+运算符来连接两个列表。*运算符重复列表给定次数。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3182.jpg?sign=1739688723-HWtzbriXqq2DfmpJnkxBm0wiwX4psQ2o-0-571632777c99ab4850e542a2ff48bda7)
此外,可以使用方法insert()在所需位置插入一个项目,或者通过将多个项目挤压到列表的空白切片中来插入多个项目。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3183.jpg?sign=1739688723-ddVLUFjT1yDoPH9Wa0yIeeI1AcFMpFmc-0-5413e8d03c38b31c93ae741456e2812d)
可以使用关键字del从列表中删除一个或多个项目。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3185.jpg?sign=1739688723-usrjwEbpjZpzmfKZNCUcSFagTNRgQcPb-0-67be53619cd9b561e3985ecbbe3bfafa)
甚至可以完全删除列表。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3186.jpg?sign=1739688723-xlQf4SaiUNAxknbNzgvvoKBC7eOZSYZ3-0-fd0a5ce14bb3567be280a22a5eedb4ed)
可以使用方法remove()删除给定的项目,或使用方法pop()删除给定索引处的项目,也可以使用方法clear()清空列表。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3187.jpg?sign=1739688723-kdoVT9POkpwL14gIm9f2D7mrB5qAiSjS-0-39f966fca95689f074b0e549cfb2d67a)
最后,还可以通过为一个元素片段分配一个空列表来删除列表中的项目。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3188.jpg?sign=1739688723-g7l3SmTIp1nuDG6SCW28RSi3X9z2zm7H-0-ca78cb6d2522ff29c2d26201f6e9cb8a)
for-in语句可以轻松遍历列表中的项目:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3190.jpg?sign=1739688723-w8kDxRj1xKpeLfKqthTmSMpo5ArXsVFx-0-618d9511de526f10088e07b444342423)
为了复制出一个新的列表,可以使用内置的方法list.copy()(从Python 3.3开始提供)。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3192.jpg?sign=1739688723-RAr1nq1Oqb7AcdhnT8pWFy1rG7ZacP5p-0-cad005dd193c3866012b25c47d7bb14b)
使用new_list = my_list,实际上没有两个列表。赋值仅复制对列表的引用,而不是实际列表,因此new_list和my_list在赋值后引用相同的列表。
通常,我们只想收集符合特定条件的项目。下面,有一个单词列表,我们只想从中提取包含wo的单词。为此,需要先创建一个新的空列表,然后遍历原始列表以查找要放入的项目:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3194.jpg?sign=1739688723-omdJmIOHUAJK6zBzrILIlomGost6uyXi-0-2821aa6c8ccfa7c9e40f2fe857e9beea)
打印列表的内容:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3196.jpg?sign=1739688723-KpdgxhSD9CFyRB5JOt7Mbx3LKtuThbUL-0-7d5aff655ad7e8ea6a6d43916ecb80df)