Python生成器学习总结

本文介绍了Python生成器的主要特点,如节约空间但时间复杂度高。生成器按需生成元素,例如`range()`就是一个生成器。生成器表达式与列表解析相似但更节省内存,适合处理大量数据。在生成器工作过程中,调用函数时不执行代码,直到迭代时才开始执行,并在遇到`yield`时暂停。`yield`语句可以有返回值,通过`next()`或`g.send(xxx)`恢复时返回不同的值。
摘要由CSDN通过智能技术生成

生成器


生成器是特殊的迭代器
通过yield凭空生成元素
生成器其实是一个有yield语句的函数,定义一个生成器函数 ,返回的是一个生成器对象,可迭代
每执行一次yield生成一个元素

  • 特点:节约空间,但时间复杂度高
  • 不是一次性将所有元素全部生成,而是按需一个个地生成,值占用一个元素的内存空间,即生成器本身

range()函数也是一个生成器,每次需要range里的一个数据时才会临时去产生它。所以如果要让range函数返回列表,必须明确指明list(range())

生成器定义


1、生成器函数,有yield语句的函数

def mygenerator(s):
    for i in s:
      yield i*2
for i in mygenerator('hello'):
     print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值