生成器表达式和列表推导式

列表推导式

格式:变量名 = [循环的变量名(i) for 循环语句]

test_list = ['这是第%s个数字'%i for i in rang(10)]
print(test_list)

#等同于下面的代码
for i in range(10)
    print('这是第%s个数字'%i)
View Code

生成器表达式

格式:变量名 = (循环的值(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)

 

posted on 2019-02-14 21:30  Jerry-Wang  阅读(138)  评论(0)    收藏  举报