#列表推导式

lis = ['我是渣渣辉%s'%i for i in range(10)]

 

#生成器表达式

g = (i for i in range(10))

#括号不一样,返回值不一样,生成器有内存优势

 

ret = [i for i in range(30) if i %3 == 0]        #完整的列表推导式

 

######################################

 

取嵌套列表中含有两个e的名字

names = []

ret = [name for lst in names for name in lst if name.count('e') == 2]

#注意遍历顺序

 

 ######################################

 

#字典推导式:

#将字典的key和value对调

dic1 = {'a':1, 'b':2}

dic1_rev = {dic1[k]:k for k in dic1}

 

#合并大小写对value并将k统一小写

dic2 = {}

dic2_fre = {k.lower():dic2.get(k.lower(),0)+dic2.get(k.upper(),0) for k in dic2}

#太复杂影响可读性

 

#######################################

#集合推导式:

#自带结果去重

lis = [1,-1,2]

set = {i**2 for i in lis}

print('set')