原文地址:https://blog.youkuaiyun.com/jing_zzy/article/details/79608510
一、列表推导式
[i*i for i in range(10)]
二、字典推导式
{i:i*i for i in range(10)}
三、集合推导式
{i*i for i in range(10)}
{ expression for expression in iterable }
四、生成器推导式
(i*i for i in range(10))
元组是没有推导式的。并不是将列表推导式中的方括号变成圆括号就可以定义元组推导式,就像下面的表达式一样:
number_thing = (number for number in range(1,6))
其实,圆括号之间的是生成器推导式,它返回的是一个生成器对象:
注:一个生成器只能运行一次。列表、集合、字符串和字典都存储在内存中,但是生成器仅在运行中产生值,不会被存下来。所以不能重新使用或者备份一个生成器。