今天所做的努力
都是在为明天积蓄力量

生成器和推导式

生成器

生成器函数

生成器的本质就是迭代器
生成器的特点和迭代器一样.取值方式和迭代器一样(next(), send(): 给上一个yield传值).
生成器一般由生成器函数或者生成器表达式来创建
其实就是手写的迭代器

def func():
    print("娃哈哈")
    yield 1 # return和yield都可以返回数据
    print("呵呵呵")


gen = func() # 不会执行你的函数. 拿到的是生成器


#函数中如果有yield 这个函数就是生成器函数. 生成器函数() 获取的是生成器. 这个时候不执行函数
#yield: 相当于return 可以返回数据. 但是yield不会彻底中断函数. 分段执行函数.
gen.__next__() 执行函数. 执行到下一个yield.
gen.__next__()  继续执行函数到下一个yield.

结果输出是

生成器表达式
语法:(结果 for循环 条件)

推导式

列表推导式

语法:[结果 for循环 判断]

字典推导式

语法:{k:v for循环 条件筛选}

集合推导式

语法 {k for循环 条件}

没有元组推导式,生成器表达式

来自为知笔记(Wiz)
赞(1)
未经允许不得转载:流觞 » 生成器和推导式
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址