列表推导式和生成器表达式
列表推导式和生成器表达式就[ ] ( )不同
但列表推导式占内存
生成器表达式生成生成器,不占内存,每次取才产生数据
[满足条件的i for i in 可迭代数据类型 if i的相关条件]
# 列表推导式 # egg_list = [] # for i in range(10): # egg_list.append('鸡蛋%s'%i) egg_list = ['鸡蛋%s'%i for i in range(10)] #列表推导式 num = [i**2 for i in range(10)] print(num) # 生成器表达式 g = (i for i in range(10)) # 生成了一个生成器 print(g) for i in g: print(i) # 括号不一样 # 返回的值不一样 生成器表达式不占内存 egg_gen = ('鸡蛋%s'%i for i in range(10)) #生成器表达式 for i in egg_gen: print(i) g = (i**2 for i in range(10)) # range(10)中每一个数字平方的生成器 print(g.__next__()) print(g.__next__()) print(g.__next__())
g = (i for i in range(30) if i % 3 == 0) # 30以内可以被3整除的数的生成器 for i in g: print(i)
names = [['Tom', 'Billy', 'Jefferson', 'Andrew'], ['Alice', 'Jill', 'Ana', 'Wendy', 'Jenny']] ret = [name for lst in names for name in lst if name.count('e') ==2] print(ret)
#将字典的key和val颠倒 mcase ={'a': 10, 'b': 35} mcase_frequency = {mcase[k]:k for k in mcase} print(mcase_frequency)
#合并大小写对应的value值,将k统一成小写 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)

浙公网安备 33010602011771号