![深度学习:从Python到TensorFlow应用实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/281/31904281/b_31904281.jpg)
上QQ阅读APP看书,第一时间看更新
2.6 列表
可以使用一个列表(List)存储任何类型的对象。例如:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P33_3174.jpg?sign=1739284866-wpmGnQDBeU1wTvotuYuYsNbKl8neLyTL-0-434304a041060a62e4ea8c700ddc2a7d)
输出:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3176.jpg?sign=1739284866-GnxbXrZQUUFUrr11QxW5RyT1esp5M09M-0-218199a5dfe1c517d6487d70fccdbea0)
此外,列表甚至可以将另一个列表作为项目。这称为嵌套列表。
my_list = ["mouse", [8, 4, 6], ['a']] #嵌套列表
使用range函数生成列表:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3177.jpg?sign=1739284866-kbxdUj82YbL8K56d69BS1nkHjExrzIJc-0-93edbd387cd4f105b1562f5f61168c58)
可以使用赋值运算符(=)来更改一个项目或项目范围。例如:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3178.jpg?sign=1739284866-6FAfuzDBfLuOzYBLiXYgROJGrT7N2rLk-0-93e1e07bad4c2935d1ed3f5547973024)
可以使用方法append()将一个项添加到列表中,或使用方法extend()添加多个项。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3180.jpg?sign=1739284866-mX8g6szec45vIUgJqSMeMWapBW4P5DCh-0-20547cef4dae867eceb3252ceb4e795d)
可以使用+运算符来连接两个列表。*运算符重复列表给定次数。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3182.jpg?sign=1739284866-JKzjRQn4ag4r92eACRiB8bUoaZKxbiyh-0-66a95130b8ad7fb8a421b7c8d3488446)
此外,可以使用方法insert()在所需位置插入一个项目,或者通过将多个项目挤压到列表的空白切片中来插入多个项目。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3183.jpg?sign=1739284866-FmjrfQyi2eCHUYqg3XckqKB6CDaizKTh-0-ed9f1ff90ed4ebacea39aa3e2f120eb2)
可以使用关键字del从列表中删除一个或多个项目。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3185.jpg?sign=1739284866-BcvTGyY8ok14uibG56LJJCb0beE1D9OP-0-67ddaec646ee00277982ea6943493e69)
甚至可以完全删除列表。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3186.jpg?sign=1739284866-K5qiiF5V0BjEQDWyKcDsWqmBFZRh1584-0-70c9bde80b6c6abbdd2145f484bd5f3a)
可以使用方法remove()删除给定的项目,或使用方法pop()删除给定索引处的项目,也可以使用方法clear()清空列表。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3187.jpg?sign=1739284866-TNXUz1OMiAOyNVJGuNPoF59f9uzF1KqP-0-65f76f93baf9159175f6148cdc66df12)
最后,还可以通过为一个元素片段分配一个空列表来删除列表中的项目。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3188.jpg?sign=1739284866-r2Z9685GmSmdmS58AiXjiRFF58v9d7uT-0-4e159e314db42da0f12f7c3af5c0d392)
for-in语句可以轻松遍历列表中的项目:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3190.jpg?sign=1739284866-jdkblEHnjdEdSuk4x9L8aYpWWCt8Y6cZ-0-0fffd9cb9dd428ccada070f2f50d6145)
为了复制出一个新的列表,可以使用内置的方法list.copy()(从Python 3.3开始提供)。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3192.jpg?sign=1739284866-RoUlWzsdnKKYAuKsblTLSyKZzboRIR6W-0-4d5a4c8943bb5f17705e977adc929432)
使用new_list = my_list,实际上没有两个列表。赋值仅复制对列表的引用,而不是实际列表,因此new_list和my_list在赋值后引用相同的列表。
通常,我们只想收集符合特定条件的项目。下面,有一个单词列表,我们只想从中提取包含wo的单词。为此,需要先创建一个新的空列表,然后遍历原始列表以查找要放入的项目:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3194.jpg?sign=1739284866-UPPQr4FOtxsjot1GKMsUyhu0xFIjlrFh-0-b14785301c8faf3a5cb20455a2dcdabd)
打印列表的内容:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3196.jpg?sign=1739284866-jN0D7Xsek9XVPqSaKom173tKmkXVhFxu-0-8d432c3f2bc62a8f2e9a953bc636786f)