参考链接: Python | 生成器表达式
列表表达式:
>>> a=[1,2,2,3,50]
>>> b=[i+1 for i in a]
>>> print(b)
[2, 3, 3, 4,...51]
>>> b=[i+1 for i in a if i>=5]
>>> print(b)
[51]
列表表达式返回一个完整的列表
生成器表达式:
>>> c=(i+2 for i in...)
>>> print(c)
at 0x01612030>
>>> print(list(c))
[3, 4, 4, 5, 52]
生成器表达式和列表表达式的形式上并无多大差别但是执行方式上却有很大的差别...,生成器表达式返回的是一个iterator 每次只返回处理单个元素,而列表表达式返回的是整个的列表,如果列表的长度很大大到占满内存的程度,那么改用生成器是有很明显的好处的
在生成器中嵌套使用:
>>