![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=1739377661-M9j81zn9aEXON4hbVvUAfOdRp3WegZWJ-0-5a2804816700e89b77cc63b387aa5aad)
列表解析语句可更加简便快捷地实现上述功能:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt004_15.jpg?sign=1739377661-on1KM1hE19SRWvWTT1oatKJzfLF7pfCf-0-14a3705c81d3f83d3067f8593496723b)
列表解析的一般形式如下,可以把[]内的列表解析写为一行,也可以写为多行(以易读为原则):
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt004_16.jpg?sign=1739377661-ZJeVVG5p8iwP6tN9l06DRsTJZYg9sdqT-0-9f584b3ab43fd62fd4d814e0576b3d73)
上面的表达式分为三部分,首先是生成每个元素的表达式,然后是for迭代过程,最后可以设定一个if判断作为过滤条件。
列表解析可以包含较为复杂的表达式和内嵌函数,例如:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt004_17.jpg?sign=1739377661-hsct1PHBgIBAssNZ9KXgmeGohUkPVkhE-0-c33a920e3229b0c4a9bfa93e60be23f5)