生成器

1.什么是生成器?

在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回一个值,该值称为生成器。

生成器的本质就是迭代器。

2.为什么要用生成器?

生成器是一种自定义迭代器的方式

3.如何使用生成器?

和迭代器一样,用next(),for循环,到函数中的yield即会停止

总结yield的功能

1.提供一种定义迭代器的方式

2.yield可以暂停函数,并返回值

yield  VS  return

相同点:都是在函数内的,都可以有返回值,没有类型的限制,没有个数的限制

不同点:return只能返回一次值,yield可以返回多次值

了解:yield用法:

①yield + 值            常用

②x = yield  函数读到yield就暂停,等待传值,然后赋值给x,传值用g.send(adj)

三元表达式:

res = x if x > y else y   条件成立时返回x,不成立时返回y

列表生产式:

l = [i**2 for i in range(1,10)]

names = [‘alex’,’wxx’,’egon’]

names = [name+’hh’ for name in names if name !=’egon’]

zip:x=[1,2,3] y = [0,0,0]

res = zip(x,y)    res为迭代器

max: max(x)   x可以是一个可迭代对象

生成器表达式:

g = (i for i in rang(10))

最新文章

  1. 如何利用谷歌浏览器快速的通过方法名来确定多个js文件中的某一具体文件;
  2. Android NDK常见配置问题的解决方案
  3. linux lsmod命令 及相关信息
  4. Linux命令--系统中常用的查看命令
  5. STL之迭代器(iterator)
  6. shell中单引号和双引号
  7. "ORA-12154: TNS:could not resolve the connect identifier specified"的解决办法
  8. UITableView设置cell为不可选?
  9. leetcode:Add Two Numbers
  10. Adobe Edge Animate –获取鼠标位置及跟随鼠标功能实现
  11. 《深入理解javascript原型和闭包系列》 知识点整理
  12. C# 事件的理解
  13. 64位linux中使用inet_ntoa报错处理
  14. iOS原生App与H5页面交互笔记
  15. 使用bootbox.js(二级务必提交书面和数字到数字中国)
  16. Python之编程基础(编程语言分类)
  17. springboot+mybatis+cucumber
  18. Latex常用软件
  19. UESTC - 1167 一句话题意
  20. 005_系统运维之SLA与SLO的关系

热门文章

  1. hdu 1159 Common Subsequence(最长公共子序列 DP)
  2. 更改控件中DrawableLeft图片的大小,图片与文字的距离
  3. js中的return
  4. AlertDialog.Builder 显示为白色 蓝色字
  5. 一个无线通信类投稿的期刊list
  6. Composer 手动安装
  7. python基础===抽象
  8. 【UOJ#164】清华集训2015V
  9. SVN使用详解
  10. FineReport——插入行策略