概念:使用表达式的方式,对数据进行过滤和处理,并返回新的列表的操作.
语法:[输出表达式 for 变量 in 数据集合 条件表达式]
分类:
1.基本推导式:[输出表达式 for 变量 in 数据集合]
result=[i for i in range(6)]
输出结果 [0, 1, 2, 3, 4, 5]
list1=["张三","李四","王五"]
result=[i for i in list1]
print(result)
输出结果 ['张三', '李四', '王五']
result=[i**2 for i in [0,1,2,3]]
输出结果[0, 1, 4, 9]
2.待条件的推导式:
[ 输出表达式 for 变量 in 数据集合 条件表达式 ]
b=[i for i in range(1,9) if i%2==0] #输出1-9的偶数
print(b)
输出结果 [2, 4, 6, 8]
3.多重循环表达式:
[ 输出表达式 for 变量 in 数据集合 for 变量 in 数据集合.... .... ]
a=[(i+j) for i in range(1,3) for j in range(6,8)]
print(a)
输出结果 [7, 8, 8, 9] 1+6 1+7 2+6 2+7
4.代条件的多重循环推倒式:[ 输出表达式 for 变量 in 数据集合 for 变量 in 数据集合 条件表达式 ]
求 100-999的水仙花数
a=[i for i in range(100,1000) if (i//100)**3 +(i%100//10)**3+(i%10)**3==i]
print(a)
输出结果
[153, 370, 371, 407]