1.19 转换并同时计算数据

    一个非常优雅的方式去结合数据计算与转换就是使用一个生成器表达式参数。比如,如果你想计算平方和,可以像下面这样做:

    下面是更多的例子:

    使用一个生成器表达式作为参数会比先创建一个临时列表更加高效和优雅。比如,如果你不使用生成器表达式的话,你可能会考虑使用下面的实现方式:

    这种方式同样可以达到想要的效果,但是它会多一个步骤,先创建一个额外的列表。对于小型列表可能没什么关系,但是如果元素数量非常大的时候,它会创建一个巨大的仅仅被使用一次就被丢弃的临时数据结构。而生成器方案会以迭代的方式转换数据,因此更省内存。

    原文: