![深度学习:从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=1739316521-DFVhgpa1s1xwuhJHmWIcW7IJhW7oQSk7-0-fd40e1cb06905cbae7cd9914ad877512)
输出:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3176.jpg?sign=1739316521-QMEO7uF0oj7FV87aSmYodPeMBMtDNY7w-0-2f9690b282476e93ef9e01ddfba44a64)
此外,列表甚至可以将另一个列表作为项目。这称为嵌套列表。
my_list = ["mouse", [8, 4, 6], ['a']] #嵌套列表
使用range函数生成列表:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3177.jpg?sign=1739316521-q7uTCfDxNHhs71ttJq7rYvRzFO59qhRK-0-2dd5a49b565567c1ff5db3ffd29bb62a)
可以使用赋值运算符(=)来更改一个项目或项目范围。例如:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3178.jpg?sign=1739316521-NMCixnAYfACI6FVSdHbYEQe0JlvNWTh2-0-642a23ee63faaa0c573116a64902ebbf)
可以使用方法append()将一个项添加到列表中,或使用方法extend()添加多个项。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3180.jpg?sign=1739316521-umb7kRLF7OPVaNyTtN0RMncn7PyhlM51-0-f03d04d9f9d5b4dfc6995d5e29c2f3e6)
可以使用+运算符来连接两个列表。*运算符重复列表给定次数。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P34_3182.jpg?sign=1739316521-WFj0BWGcYEJtjpRynjwd9oy9xaDhn31K-0-101419ca4e4f98c0f68eb56f8dc63db9)
此外,可以使用方法insert()在所需位置插入一个项目,或者通过将多个项目挤压到列表的空白切片中来插入多个项目。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3183.jpg?sign=1739316521-k2GMXPmRxmzmg9i9FrOGmWjEtbFd6lq4-0-ab98dec9d95239c8e089e3928fb5b7e1)
可以使用关键字del从列表中删除一个或多个项目。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3185.jpg?sign=1739316521-O3vCmGDigIfqywv9sgh0FHqM1815WGwO-0-5a49ee7e2f0c84efa73ecb521c64624c)
甚至可以完全删除列表。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3186.jpg?sign=1739316521-UwEQmeYszRCktY8svejwcxktAaoK3t6u-0-189ad9663c54a9d685b2034f5ea0475c)
可以使用方法remove()删除给定的项目,或使用方法pop()删除给定索引处的项目,也可以使用方法clear()清空列表。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P35_3187.jpg?sign=1739316521-x4SAKt6TalYmLGAmca4IGtMkmVOxk2tF-0-b5f1f7d10ed13d9c6c1ce7f979bc0666)
最后,还可以通过为一个元素片段分配一个空列表来删除列表中的项目。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3188.jpg?sign=1739316521-2w5Ncug5QQ11I5Muv4TWHLDWWwZFnt0J-0-a81514c899f0549d97c18c7d1d4f0d0e)
for-in语句可以轻松遍历列表中的项目:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3190.jpg?sign=1739316521-w2tDgSwMbj6gcnIkkmZBh2dqw75nSXHB-0-10feadffac05908a84e9c1f890ee61df)
为了复制出一个新的列表,可以使用内置的方法list.copy()(从Python 3.3开始提供)。
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3192.jpg?sign=1739316521-LzKYosnnzlUz2zrHKL9vKzFNmAeZyAJb-0-f2f7919d7168a37927ad88cbafa86859)
使用new_list = my_list,实际上没有两个列表。赋值仅复制对列表的引用,而不是实际列表,因此new_list和my_list在赋值后引用相同的列表。
通常,我们只想收集符合特定条件的项目。下面,有一个单词列表,我们只想从中提取包含wo的单词。为此,需要先创建一个新的空列表,然后遍历原始列表以查找要放入的项目:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3194.jpg?sign=1739316521-lJz4yQ6PJKOlatmGXfRMGIgqAV15hJ02-0-a3120ec98be5c23171053398ffbd1f10)
打印列表的内容:
![](https://epubservercos.yuewen.com/39F6A5/17274856904200306/epubprivate/OEBPS/Images/Figure-P36_3196.jpg?sign=1739316521-tW1QDPzKjSE42zHlnyVzWiWZ5NqE5rYM-0-dcf932a3eb4db706ae016cbfb9848a14)