python 列表解析和生成器表达式

列表解析

概念

  • 列表解析(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)

你可能感兴趣的:(python 列表解析和生成器表达式)