全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

用生成器来改写直接返回列表的函数方法

本文是一篇关于《Effective Python》书中一节的学习笔记,记录了示例代码和思路。

如果函数要产生一系列结果,那么最简单的做法就是把这些结果都放在一个列表里返回。

比如我们要查出字符串中每个词的首字母在整串字符串中的位置:

def index_word(text):
  result=[]
  if text:
    result.append(0)
  for index,letter in enumerate(text):
    if letter == ' ':
      result.append(index+1)
  return result

该函数的使用:

  

这个函数思路很明了,但存在的问题在于代码拥挤、冗余。返回前要把所有结果都放在列表里,如果输入量巨大,则程序可能会耗尽内存发生崩溃。

这个函数改用生成器(generator)来写会更好。可以对应任意长度的数据,不会影响到执行时所耗内存。

生成器是使用yield表达式的函数。调用生成器函数时,它并不会真的运行,而是会返回迭代器。每次在这个迭代器上面调用内置的next函数时,迭代器会把生成器推进到下一个yield表达式那里。生成器传给yield的每一个值,都会由迭代器返回给调用者。

def index_word_iter(text):
  if text:
    yield 0
  for index,letter in enumerate(text):
    if letter == ' ':
      yield index+1

需要注意的是:函数返回的迭代器,只能产生一轮结果,如果继续迭代第二轮,是不会再有结果的。

以上这篇用生成器来改写直接返回列表的函数方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# python  # 函数返回列表  # 浅谈Python中列表生成式和生成器的区别  # 深入理解python函数递归和生成器  # 迭代  # 放在  # 给大家  # 的是  # 在这个  # 要把  # 希望能  # 书中  # 会把  # 影响到  # 这篇  # 最简单  # 需要注意  # 第二轮  # 小编  # 进到  # 大家多多  # 来写  # 学习笔记  # 会由 


相关文章: 盐城做公司网站,江苏电子版退休证办理流程?  如何快速搭建安全的FTP站点?  如何打造高效商业网站?建站目的决定转化率  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  文字头像制作网站推荐软件,醒图能自动配文字吗?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何快速建站并高效导出源代码?  如何有效防御Web建站篡改攻击?  完全自定义免费建站平台:主题模板在线生成一站式服务  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  如何获取免费开源的自助建站系统源码?  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何选择香港主机高效搭建外贸独立站?  如何在建站主机中优化服务器配置?  如何在Windows服务器上快速搭建网站?  建站主机选择指南:服务器配置与SEO优化实战技巧  已有域名和空间,如何快速搭建网站?  如何快速搭建个人网站并优化SEO?  如何用搬瓦工VPS快速搭建个人网站?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  如何用景安虚拟主机手机版绑定域名建站?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  如何在IIS中配置站点IP、端口及主机头?  表情包在线制作网站免费,表情包怎么弄?  如何在七牛云存储上搭建网站并设置自定义域名?  c++怎么用jemalloc c++替换默认内存分配器【性能】  如何用5美元大硬盘VPS安全高效搭建个人网站?  建站之星如何助力企业快速打造五合一网站?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  安云自助建站系统如何快速提升SEO排名?  建站之星CMS五站合一模板配置与SEO优化指南  建站主机如何选?性能与价格怎样平衡?  小型网站制作HTML,*游戏网站怎么搭建?  PHP正则匹配日期和时间(时间戳转换)的实例代码  h5在线制作网站电脑版下载,h5网页制作软件?  ,网页ppt怎么弄成自己的ppt?  如何在IIS中新建站点并配置端口与物理路径?  如何在阿里云完成域名注册与建站?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  宝塔面板创建网站无法访问?如何快速排查修复?  如何使用Golang table-driven基准测试_多组数据测量函数效率  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  定制建站流程解析:需求评估与SEO优化功能开发指南  如何快速生成凡客建站的专业级图册?  建站主机选虚拟主机还是云服务器更好?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  黑客如何利用漏洞与弱口令入侵网站服务器?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。