迭代器和生成器

1、迭代器

特点:

  1. 访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容
  2. 不能随机访问集合中的某个值 ,只能从头到尾依次访问
  3. 访问到一半时不能往回退
  4. 便于循环比较大的数据集合,节省内存
 x = [11,22,33,44,55]

 for i in iter(x):
print(i)

2、生成器

一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator);如果函数中包含yield语法,那这个函数就会变成生成器;

 def xrange(n):
start = 0
while True:
if start > n:
return
yield start
start += 1 obj = xrange(5)
n1 = obj.__next__()
n2 = obj.__next__()
n3 = obj.__next__()
n4 = obj.__next__()
n5 = obj.__next__()
n6 = obj.__next__()
print(n1,n2,n3,n4,n5,n6)

最新文章

  1. Android开发之Android Material Design Toolbar自定义随笔
  2. Teredo 是一项 IPv6/IPv4 转换技术
  3. GS连接事件
  4. php redis 分布式类
  5. POJ1416Shredding Company
  6. POJ 3468 A Simple Problem with Integers(树状数组)
  7. VS中使用QT调用R脚本
  8. delphi 保存 和 打开 TREE VIEW的节点已经展开的状态
  9. [转] .NET领域驱动设计—实践(穿过迷雾走向光明)
  10. the c programing language 学习过程6
  11. (light oj 1306) Solutions to an Equation 扩展欧几里得算法
  12. What is volatile?
  13. C# 正则表达式应用
  14. 【原创】Linux基础之SSH隧道/端口转发
  15. CentOS入门
  16. Flutter常用组件(Widget)解析-Scaffold
  17. 【2014年12月6日】HR交流会
  18. Git 使用篇二:搭建远程服务器
  19. HDU 1234:开门人和关门人
  20. 使用SharedPreference保存用户数据的步骤

热门文章

  1. Codeforces 864E Fire(背包DP)
  2. bzoj3232圈地游戏——0/1分数规划+差分建模+判环
  3. syslog大小限制
  4. jq 正则
  5. linux内核挂载文件系统的两种方式
  6. 2015/9/9 Python基础(10):文件和输入输出
  7. Eclipse导入Java工程导入错误
  8. Sass 基本特性-基础 笔记
  9. Divergent Change(发散式变化)---要重构的信号
  10. Vue 键盘事件