当前位置: 首页 > news >正文

高新区做网站的公司深圳企业网站哪家好

高新区做网站的公司,深圳企业网站哪家好,做服装设计兼职的网站,做网站 内网怎么映射生成器 这个老师的课 这个老师的网页 获取系列有规律但是个数不确定的数据 使用迭代器的时候可以使用一个不会产生异常的迭代器, 实际记录的是生成的数据的方式, 不是实际的数据 使用迭代器的时候这一个规则的改变不方便, 需要加一个专门的方法 还有就是如果需要大量的数据,…

生成器

这个老师的课
这个老师的网页

获取系列有规律但是个数不确定的数据

使用迭代器的时候可以使用一个不会产生异常的迭代器, 实际记录的是生成的数据的方式, 不是实际的数据

使用迭代器的时候这一个规则的改变不方便, 需要加一个专门的方法

还有就是如果需要大量的数据, 而实际使用的时候只用其中一部分, 会浪费大量的空间

生成器是一个记录生成数据的方式, 而不是实际的数据的方式, 实际是一个特殊的迭代器

实际定义

方法一

只需要把一个列表的生成[]改为()

nums = [x for x in range(5)]
nums2 = (x for x in range(5))print(type(nums))
print(type(nums2))print(nums)
print(nums2)
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
<class 'list'>
<class 'generator'>
[0, 1, 2, 3, 4]
<generator object <genexpr> at 0x000002431C7B2110>

方法二

有时候这一个推导比较复杂, 不能使用for循环实现

这时候可以使用一个函数生成一个生成器

这一个函数返回的时候使用的不是return, 而是使用yeild, 下一次调用的时候会从yeild返回的位置

def fib_generator():num1 = 1num2 = 1while True:temp_num = num1num1, num2 = num2, num1 + num2yield temp_num

这个代码块的返回值是一个生成器, 这一个生成器第一次执行会从def开始直到yield, 调用next的时候会返回yield后面的数值

fib = fib_generator()print(fib)
print(next(fib))
print(next(fib))
print(next(fib))
print(next(fib))
print(next(fib))
<generator object fib_generator at 0x000002342F7D2110>
1
1
2
3
5

这一个迭代器执行结束的时候会产生一个异常StopIteration, 如果是使用一个return, 返回的值会成为这一个异常的参数, 可以使用try语句进行捕获

def fib_generator():num1 = 1num2 = 2temp_num = num1num1, num2 = num2, num1 + num2yield temp_numtemp_num = num1num1, num2 = num2, num1 + num2yield temp_numtemp_num = num1num1, num2 = num2, num1 + num2yield temp_numreturn "结束了!!!"fib = fib_generator()print(next(fib))
print(next(fib))
print(next(fib))
try:print(next(fib))
except StopIteration as ret:print(ret.value)
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
1
2
3
结束了!!!

send唤醒

除了使用next还可以使用send发送一个数据给迭代器

def fib_generator():num1 = 1num2 = 2temp_num = num1num1, num2 = num2, num1 + num2num = yield temp_numprint("get ", num)temp_num = num1num1, num2 = num2, num1 + num2num = yield temp_numprint("get ", num)temp_num = num1num1, num2 = num2, num1 + num2num = yield temp_numprint("get ", num)return "结束了!!!"fib = fib_generator()print(fib.send(None))
print(fib.send(2))
print(fib.send(3))
try:print(fib.send(4))
except StopIteration as ret:print(ret.value)
PS E:\JHY\python\2024-4-22> python -u "e:\JHY\python\2024-4-22\main.py"
1
get  2
2
get  3
3
get  4
结束了!!!
http://www.yayakq.cn/news/777772/

相关文章:

  • 网站的后台怎么做调查问卷查网站服务器地址
  • 网站怎样做域名绑定张掖作风建设年网站
  • 大型国有企业网站建设网站seo的重要性
  • 网站建设歺首选金手指12北京网站优化排名
  • 网站建设 风险防控joomla做类似赶集网的网站
  • 登封 网站建设搜索引擎优化方法与技巧
  • 网站建设学的是什么知识网络平台销售
  • 看到一个电商网站帮做淘宝免费企业logo设计
  • 医保局微网站开发基于C 的网站开发源码
  • 织梦iis7搭建网站教程剑灵网站模板
  • 网站建设投湖北营销网站建设设计
  • 网站制作教程书籍网站备案转服务器
  • php做的网站如何盈利网络销售渠道有哪些
  • 网站关键词密度赣州金图网络科技有限公司
  • 首先确定网站建设的功能定位如何开一家外贸网店
  • 外贸网站建设便宜江苏网站建设开发
  • 网站托管服务方案欧米茄官方
  • 茌平网站建设价格那家公司装修比较好
  • 网站建设风险怎样规避成都需要网站制作
  • uni做网站首页网站手机自动跳转
  • 企业网站怎么做外链网页制作软件是什么
  • 电商网站建设源码我的小程序入口
  • 顺德大良网站建设楼盘 东莞网站建设
  • 公司网站模板下载企业网站设计过程中必须重视的问题之一
  • 用thinksns做的网站可以自己做网站吗
  • 襄阳seo优化服务淄博网站制作优化
  • 建站找哪个公司网站上面怎么做链接
  • wordpress评论数seo薪资水平
  • 建网站找哪家好用vue做的网站
  • 站长查询推广方案