列表推导式本质上是一种集合了转换和筛选功能的函数,通过这个函数把一个列表转换成另一个列表(生成新列表,原列表不变)。
目录:
- 列表推导
- 列表嵌套推导
- 条件列表推导
- 列表推导
[ 表达式 for 变量 in 列表]
l = ['1','2','3','4']
out1 = [int(i) for i in l] #对列表内数据整数化,生成的还是列表
out2 = [int(i)+10 for i in l] #对列表中数据进行调整
print(out1)
print(out2)
#输出:[1,2,3,4]
#输出:[11,12,13,14]
- 列表嵌套推导
[ 表达式 for 变量1 in 列表1 for 变量2 in 列表2]
l = [[1,2],[3,4],[5,6]]
out1 = [i for i in l for x in i ]
out2 = [x for i in l for x in i]
out3 = [[x+10 for x in i] for i in l]
print(out1) #嵌套循环 先执行for i in l, 再执行for x in i,表达式为 i
print(out2) #嵌套循环 表达式为 x
print(out3) #先执行for i in l,再执行[x+10 for x in i]
#输出:[[1, 2], [1, 2], [3, 4], [3, 4], [5, 6], [5, 6]]
#输出:[1, 2, 3, 4, 5, 6]
#输出:[[11, 12], [13, 14], [15, 16]]
- 条件列表推导
[ 表达式 for 变量1 in 列表 if 条件]
l = [[1,2],[3,4],[5,6]]
m = [1,2,3,4]
out1 = [x for x in m if x>2 ]
out2 = [[x for x in i if x>=2] for i in l]
out3 = [[x,y] for x in m for y in m if x!=y]
print(out1) #先执行for x in m,再执行if x>2
print(out2)
print(out3)
#输出:[3, 4]
#输出:[[2], [3, 4], [5, 6]]
#输出:[[1, 2], [1, 3], [1, 4], [2, 1], [2, 3], [2, 4], [3, 1], [3, 2], [3, 4], [4, 1], [4, 2], [4, 3]]