列表解析(List Comprehensions),来自函数式的编程语言Haskell。是一个非常有用,简单而且灵活的工具,可以动态地创建列表。自Python2.0,列表开始加入到Python中,里面有lambda,map,filter等,使Python具备一个很重要的功能:函数式编程。使Python语言有了个革命性的发展.也提供用户一个强大工具,只用一行代码就可以创建包含特定内容的列表。
evaluation(延迟计算),所以它在内存使用上更有效。生成器表达式格式:
其基本格式:
[expr for item in iterable if condition]
比如下面两个例子,即可以用map, filter等来实现
也可以使用列表解析来实现
evaluation(延迟计算),所以它在内存使用上更有效。生成器表达式格式:
(expr for item in iterable if condition)
下面举个例子来说明:
【测试文件】
准备了四个文件: 1.txt 2.txt 3.txt 4.txt
文件大小分别为: 10M 100M 1G 10G
【测试内容】测试上述四个文件所有非空字符的数目
【测试项目】列表解析 VS 生成器表达式
【测试脚本】
【测试结果】
【测试分析】
1. 当数据比较小时,使用生成器表达式所耗时间比列表解析要稍微快些
2. 当数据比较大时,比如接近PC机内存的总量时,用后者速度要快的多!