生成器

def func():
print("111")
yield 1
print("222")
yield 3
print("333")
yield 3 ret=func()
print(ret) #具有生成指定条件的数据能力的对象,进行循环的时候才会逐个生成数据
r1=ret.__next__() #进入函数找到yield,获取yield后面的数据
print(r1)
r2=ret.__next__()
print(r2)
r3=ret.__next__()
print(r3)

迭代器

def myrange(arg):   #与内置函数xrange功能一致
start=0
while True:
if start>arg:
return
yield start
start +=1
ret=myrange(3)
for item in ret: #迭代器
print(item,end=" ")
print("")

例子

def fibonacci(n):   #生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield b
a, b = b, a + b
counter += 1 f = fibonacci(10)
# 自己写迭代器
# import sys
# while True:
# try:
# print (next(f), end=" ")
# except StopIteration:
# sys.exit() # 内置迭代器
for i in f:
print(i,end=" ")

最新文章

  1. 【C#公共帮助类】 Utils 10年代码,最全的系统帮助类
  2. Linux命令:ps,netstat,top
  3. BAYSY2 的LVDS引脚 笔记
  4. hibernate的update() 更新延迟或者无法更新,导致同个service调用存储过程执行方法不精确
  5. Git Day02,工作区,暂存区,回退,删除文件
  6. 基本概率分布Basic Concept of Probability Distributions 8: Normal Distribution
  7. hdu1251(字典树)
  8. 安装wine qq2012
  9. Codeforces Round #312 (Div. 2) A. Lala Land and Apple Trees 暴力
  10. IOS 图片模糊处理 ------ 直接代码 复制出去就可用 值得标记
  11. Linq4j简明介绍
  12. mybatis 总结(1)
  13. #pta循环作业
  14. Lnmp修改php.ini配置
  15. C# 加载并显示菜单
  16. highstock+websocket实现动态展现
  17. Noisy Channel模型纠正单词拼写错误
  18. 面向对象的css less 和sass
  19. Spring Security OAuth2实现单点登录
  20. Spring Batch学习笔记(一)

热门文章

  1. Git 标签使用详解
  2. js tab栏切换
  3. docker查看容器的ip地址
  4. Centos 7.6关闭selinux
  5. 创建react开发环境
  6. Servlet初级学习加入数据库操作(三)
  7. LINUX学习-Mysql集群-一主多从
  8. 硬核 - Java 随机数相关 API 的演进与思考(下)
  9. JAVA之内存结构
  10. Centos7安装erlang以及RabbitMQ Centos启动rabbitmq