1.即生成一个list
原来:
a = []
for x in range(1, 11):
a.append(x * x)
print(a)
改为列表表达式
[x*x for x in range(1,11)]
# 可以使用多个if语句,但是不能加else
[x*x for x in range(1,11) if x % 2 == 0]
# 错误使用
[x*x for x in range(1,11) if x % 2 == 0 else 0]
# 可以使用两个变量生成list
d = {
'x': 1,
'y':2
}
[k + '=' + v for k,v in d.items()]
输出 ['x'=1, 'y'=2]
# 可以使用多个for语句
[x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]
2.也可生成 字典和集合 列表表达式,即[ ] 换为 { }
d = {
'x': 1,
'y':2
}
{k + '=' + v for k,v in d.items()}
输出 {'x'=1, 'y'=2}
a = {1,2,3}
{x for x in a if x > 1}
输出 {2,3}