python生成器(next()、send())

本文介绍了Python生成器的概念,包括通过小括号和yield关键字创建生成器的方式。生成器可以节省内存空间,按需生成值,并且只能顺序访问。next()用于获取生成器的下一个值,而send()不仅可以获取值,还能传入参数到生成器中,影响yield语句的返回值。在使用send()之前,必须先调用next()初始化生成器,否则会引发错误。
摘要由CSDN通过智能技术生成

引引言引言言

 引言:列表生成式

[i**2 for i in range(10)]

 此外,列表生成时也可以加入函数:

def func(x):
    return x**2
list = [func(x) for  x in range(10)]

 生成器:

生成器的两种构建方式:一是通过小括号(),一是通过yield关键字。这里yield相当于return,不同之处在于yield结束后会保存此时函数的状态。

第一种方式:小括号

gene = (x**2 for x in range(10))
print gene

<generator object <genexpr> at 0x000000000287DB88>

生成器对象的特点:

1:在你用到数据的时候,会给你生成,从而节省内存空间

2:不能跳跃取值,即只能顺序的生成值,

3:生成器是可迭代对象(后面会讲到什么是可迭代对象)

gene = (x**2 for x in range(5))
first_num = ne
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值