列表推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。
其语法格式如下:
[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]
此格式中,[if 条件表达式] 不是必须的,可以使用,也可以省略。
其实,除去 [if 条件表达式] 部分,其余各部分的含义以及执行顺序和 for 循环是完全一样的(表达式其实就是 for 循环中的循环体),即它的执行顺序如下所示:
for 迭代变量 in 可迭代对象
表达式
例子:
my_list=[x*x for x in range(10)]
print(my_list)
my_list2=[x*x for x in range(20) if x%3==0]
print(my_list2)
my_list1=[(x,y) for x in range(10) for y in range(10)]
print(my_list1)
运行结果为:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[0, 9, 36, 81, 144, 225, 324]
[(0, 0