|||
列表解析(List comprehensions)
列表解析式是将一个可迭代对象(如列表)转换成另一个列表的工具。在转换过程中,可以指定元素必须符合某一条件,并按照指定的表达式进行转换,才能添加至新的列表中。
语法:
[expression for iter_var in iterable1]
[expression for iter_var2 in iterable2 ...
for iter_varN in iterableN]
[expression for iter_var in iterable1
if condition]
执行:
迭代iterable中所有的元素,每一次迭代都把iterable中的内容放到iter_var对象中,然后把这个对象应用到表达式expression中,生成一个列表。
带嵌套循环(nested loop)的列表解析式
e.g. 一个拉平(flattened)矩阵(以列表为元素的列表)的for循环及其改为列表解析的形式:
注:如果要在列表解析式中处理嵌套循环,则列表解析式中for循环子句的顺序与原来的for循环语句的顺序一致。
生成器表达式(Generator expressions)
不创建列表,只是返回一个生成器。这个生成器在每次计算出一个条目后,才把这个条目产生出来。所以在处理大量数据时更有优势。
语法:
(expression for iter_var in iterable1)
(expression for iter_var2 in iterable2 ...
for iter_varN in iterableN)
(expression for iter_var in iterable1
if condition)
执行:
迭代iterable中所有的元素,每一次迭代都把iterable中的内容放到iter_var对象中,然后把这个对象应用到表达式expression中,生成一个生成器。Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-21 10:38
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社