生成器表达式和列表推导式
列表推导式
格式:变量名 = [循环的变量名(i) for 循环语句]
test_list = ['这是第%s个数字'%i for i in rang(10)] print(test_list) #等同于下面的代码 for i in range(10) print('这是第%s个数字'%i)
生成器表达式
格式:变量名 = (循环的值(i) for循环语句)
注意:
1、和列表推导式的区别是"[]" 和 "()"
2、变量的返回值不一样,生成器表达式返回的值是生成器
3、比列表推导式更省内存空间,几乎不占内存
4、缺陷是无法直观的看到内部的值
g = (i for i in rang(10)) # 获取到的是一个生成器 foi i in g: print(i) # 等同于下面代码 def gen(): for i in rang(10): yield i g=gen() for i in g: print(i)
浙公网安备 33010602011771号