![Python程序设计基础](https://wfqqreader-1252317822.image.myqcloud.com/cover/423/30058423/b_30058423.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.1.5 列表解析
列表解析(list comprehension,也称为“列表推导式”或“列表的内涵”)是Python语言强有力的语法之一,常用于从集合对象中有选择地获取并计算元素。虽然在多数情况下可以使用for、if等语句组合完成同样的任务,但列表解析书写的代码更简洁(当然有时可能会不易读)。
【例4-5】创建平方数列表的方法比较。
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt004_14.jpg?sign=1739272648-daXtkaPdT4acxzAuJ3t0BQcjnQ770pG9-0-234db7e04512d0bb4e4f5467f2748c73)
列表解析语句可更加简便快捷地实现上述功能:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt004_15.jpg?sign=1739272648-xqjxv6YcEaWOTMmRjoufhGxvVPF7t6im-0-88cb80cc7fe8d343a4e60337703d5b46)
列表解析的一般形式如下,可以把[]内的列表解析写为一行,也可以写为多行(以易读为原则):
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt004_16.jpg?sign=1739272648-JfqIF8lex8oTUoAOlh5PWGlkJaiMfip0-0-718ffe1a4f21a3b8e5d6b24feaa66de8)
上面的表达式分为三部分,首先是生成每个元素的表达式,然后是for迭代过程,最后可以设定一个if判断作为过滤条件。
列表解析可以包含较为复杂的表达式和内嵌函数,例如:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt004_17.jpg?sign=1739272648-3keC5G7Pamaexsy5LNcEt6tXAwe2KCUU-0-40b47d08f0044b419b5ad1c42aa38195)