列表解析
概念
- 列表解析(LIst comprehension,或缩略为 list comps)来自函数式编程语言Haskell,它是一个非常有用,简单,而且灵活的工具,可以用来动态地创建列表。
列表解析的语法:
- 语法:[expr for iter_var in iterable]
- 语法解释:这个语句的核心是 for 循环,它迭代 iterable 对象的所有条目。前边的 expr 应用于序列的每个成员,最后的结果值是该表达式产生的列表。迭代变量并不需要是表达式的一部分。
列表解析扩展版本
- 语法:[expr for iter_var in iterable if cond_expr]
- 解释:这个语法在迭代时会过滤/捕获满足条件表达式 cond_expr 的序列成员。
生成器表达式
概念
- 生成器表达式是列表解析的一个扩展,它提供给用户了一个强大的工具,只用一行代码就可以创建包含特定内容的列表。
- 列表解析的一个不足就是必要生成所有的数据,用以创建整个列表,这可能对有大量数据的迭代器有负面效应。生成器表达式通过结合列表解析和生成器解决了这个问题。
表达式
- (expr for iter_var in iterable if cond_expr)
网友评论