推导式
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
variable = [out_exp_res for out_exp in input_list if out_exp == 2] out_exp_res: 列表生成元素表达式,可以是有返回值的函数。 for out_exp in input_list: 迭代input_list将out_exp传入out_exp_res表达式中。 if out_exp == 2: 根据条件过滤哪些值可以。
30以内所有能被3整除的数
print([ i for i in range(30) if i % 3 == 0])
30以内所有能被3整除的数的平方
print([ i*i for i in range(30) if i % 3 == 0])
求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表
print([(x,y) for x in range(5) if x%2==0 for y in range(5) if y %2==1] )
字典推导式
将一个字典的key和value对调
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
mcase = {'a': 10, 'b': 34} mcase_frequency = {mcase[k]: k for k in mcase} print(mcase_frequency)
合并大小写对应的value值,将k统一成小写
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3} mcase_frequency = {k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys()} print(mcase_frequency)
集合推导式
计算列表中每个值的平方,自带去重功能
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
squared = {x**2 for x in [1, -1, 2]} print(squared)
生成器推导式
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
g = (i for i in range(30) if i % 3 == 0) #节省内存 print(g.__next__()) print(g.__next__()) # for i in g: # print(i)