#列表推导式
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')