推导式又称解析式,是Python的一种独有特性。目的是可以从一个数据序列推导出另一个数据序列,适用于python 的list ,dict 和集合
list中的推导式:
_list=[i for i in 迭代器 if 条件] #for i in 迭代器 if 条件就是一个表达式,将这个表达式的所有i加入到list中 #比如:求10以内4的倍数 list_1=[i for i in range(10) if i %4 is 0 and i != 0 ] #out:[4,8] #-----表达式获取到的值还可以当做参数传递给函数或者实列,返回值就是list #比如:获取20以内3的倍数,并将每个数字+10展示 def add(i): return i+10 list_2=[add(i) for i in range(10) if i %4 is 0 and i != 0] #out:[13,16,19,22,25,28]
dict推导式方式都是类似, 表达式换成返回2个值,接受也换成2个变量接受即可:
dict_1={'xx':'yy','aa':'bb'} #将字典dict_1键值互换 dict_2={k:v for v,k in dict_1.items()} #out:{'yy':'xx','bb','aa'}
集合推导式和list推导式一样,将[]变成{}就可以了
set_1={x*x for x in range(5)} print(set_1) print(type(set_1)) #out:{0,1,4,9,16} #out:<class 'set'>
还可以利用推到式将list变成生成器,将[]变成(),这样得到的就是一个生成器
generator_lsit=(i for i in [0,2,1,-1]) print(type(generator_lsit)) generator_lsit.__next__() #out:<generator object> #out:0
总结来说:推导式可以很方便的让我们得到想得到的数据集合