python middle_如何最简单、通俗地理解Python的生成器?

目录:

一、笔记

二、我的自学路线

三、笔记目录

一、笔记

① 使用了yield的函数被称为生成器。

② 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单理解生成器就是一个迭代器。

③ 在调用生成器运行的过程中,每次遇到yield时候函数暂停并保存当前所有的运行信息,返回yield的值,并在下一次从当前位置继续运行。

④ 生成器是一种特殊的迭代器,可以通过next方法调用,next(generator),或者通过for循环语句遍历,for i in generator。

⑤ 生成器是一个对象,而且是可迭代的,它保存的是算法,只有在有用的时候调用它它才会去计算,这样就节省了大量的空间。

⑥ 创建生成器的方法1:把列表生成式的 [] 改成 (),创建生成器方法2:使用yield函数创建生成器。

# 生成器用法:

def f1():

print('start')

return 3

def f2():

print('start')

a = yield 1 # 可以不用 "a = ",即使用了也不会报错

print('middle...')

b = yield 2 # yeild 2 的返回值为None,所以若打印b,则打印None

print('next')

c = yield 3

print(c) # 若有四个print(next(b)),打印c为None,由于没有第四个yield,所以报错

a = f1() # 普通函数,会进入f1

b = f2() # 生成器,不会进入f2

print(next(b)) # 才会进入f2,打印1

print(next(b)) # 才会进入f2,打印2

运行结果:

start

start

1

middle...

2

# 列表生成式

ls = [x*2 for x in range(10)]

print(type(ls))

# 生成器

generator = (x*2 for x in range(10))

print(type(generator))

运行结果:

二、我的自学路线

01 安装Python编辑器 [ 已整理 ]

02 Python编辑器快捷键 [ 已整理 ]

03 Python基础 [ 已整理 ]

04 Python难点 [ 整理ing ]

05 Python常用的库 [ 整理ing ]

06 爬虫 [ 看视频ing ]

三、笔记目录

( ……更多笔记,见专栏 )

"♥我的笔记,希望对你有帮助♥"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值