生成器表达式 Generator expressions 是列表推导式和生成器的高性能,内存使用效率高的推广.
- 对1到9所有数字进行平方求和.
过程是首先在内存中创建平方数列值列表,然后遍历列表,求和后释放内存.这样大列表会占用比较多的内存空间.
>>> sum([x*x for x in rang(1, 10)])
- 通过生成器表达式就可以节省内存使用.
>>> sum(x*x for x in range(1, 10))
- 比较两者的内存占用
>>> L = [x*x for x in range(1, 10)]
>>> L
[1,4,9,16,25,36,49,64,81]
>>> G = (x*x for x in range(1, 10))
>>> G
<generator object <genexgr> at 0x7f43bee46a98>