列表推导式用于使用其他列表创建一个新列表。
一般形式:中括号内含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。
[表达式 for 变量 in 列表 if 表达式]
执行顺序:
- 各语句之间是嵌套关系;
- 左边第二个语句是最外层,往右为第二层,依此类推;
- 而左边第一条语句是最后一层。
例:
[x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]
- 第一层:左边第二个语句 for x in range(1,5) ;
- 第二层: if x>2 ;
- 第三层:for y in range(1,4) ;
- 第四层:if y < 3 ;
- 最后一层:左边第一条语句 x*y 。
执行过程与下面的程序段等效:
for x in range(1,5)
if x > 2
for y in range(1,4)
if y < 3
x*y
---------end---------