前言
说起生成器表达式,不得不提到列表推导式。列表推导式是我们Python的一个语法糖,目的在于代码优雅性。生成器表达式在形式上的区别是没有列表推导式的中括号。
特点:
这种表达式被设计用于生成器将立即被外层函数所使用的情况。 生成器表达式相比完整的生成器更紧凑但较不灵活,相比等效的列表推导式则更为节省内存。
列表推导式
常用于不同业务情况下的列表生成
a stmt=[i for i in range(10)] print(stmt)
生成器表达式
#生成器表达式 print(i for i in range(10))
如图所示,返回一个生成器对象。故其外部通常会跟一些方法,如sum,max等.。sum、max函数中也可以跟列表推导式,但多了生成列表这步。故资源消耗是相比之下是远远大于生成器表达式的。故在根据业务需要的情况下应灵活使用这两种方法,达到节省资源、提高性能的目的
print(sum(i for i in range(10))) print(max(i for i in range(10)))