解析式与生成器
列表解析式
语法
使用中括号,内部是for循环,if条件语句可选。
返回值
一个新的列表
用处
简化代码,减少出错,因为是语法糖因此增加了效率。
举例
↑求10以内所有偶数。
进阶用法
if嵌套等价
for嵌套等价
生成器表达式
语法
使用小括号,内部是for循环,if条件语句可选,不会立即返回列表,是惰性求值,只会返回生成器对象,写生成器的语句叫做生成器表达式。生成器表达式是用来生成生成器对象的。
返回值
一个生成器对象。
生成器对象
一个可迭代的迭代器对象
与列表解析式的对比
计算方式
生成器表达式惰性求值,列表解析式立即计算
内存占用
单纯从返回值来说,生成器表达式省内存。
实际占用(累计)两者差距不大,生成器是多次少量占用,列表是一次性占用。
集合解析式
语法
使用大括号,内部是for循环,if条件语句可选。
返回值
一个新的集合
字典解析式
语法
使用大括号,内部是for循环,if条件语句可选,返回值是key:value
形式。
返回值
一个新的字典
Last updated
Was this helpful?