官方文档的解释:对序列或可迭代对象中的每个元素应用某种操作,用生成的结果创建新的列表;或用满足特定条件的元素创建子序列。
例1:1个for循环且没有判断条件
# 普通for循环
a = []
for i in range(3):
a.append(i*2)
print(f'a={a}')
# 使用列表推导式
b = [i*2 for i in range(3)]
print(f'b={b}')
例2:1个for循环且有判断条件
# 普通for循环
a = []
for i in range(3):
if i > 0:
a.append(i*2)
print(f'a={a}')
# 使用列表推导式
b = [i*2 for i in range(3) if i > 0]
print(f'b={b}')
例3:2个for循环
# 普通for循环
a = []
for i in range(1,10):
for j in range(10):
if i == j:
a.append(str(i)+str(j))
print(f'a={a}')
# 使用列表推导式
b = [str(i)+str(j) for i in range(1,10) for j in range(10) if i == j]
print(f'b={b}')
例4:嵌套的列表推导式
# 普通for循环
a = [
[1,2,3],
['a','b','c']
]
b = []
for i in range(3):
c = []
for j in a:
c.append(str(j[i]))
b.append(''.join(c))
print(f'b={b}')
# 使用列表推导式
b2 = [''.join([str(j[i]) for j in a]) for i in range(3)]
print(f'b2={b2}')