直接用作于for循环的数据类型有以下几种:

1、集合类的数据类型:list tuple dict set str等

2、生成器generator,包括生成器和带有yiled 的generator function

上面这些可以直接用于for循环的对象统称为可迭代的对象Iterable。

 #coding=utf-8

 from collections import Iterable

 print(isinstance({}, Iterable))  #True
print(isinstance([], Iterable)) #True
print(isinstance('iterable', Iterable)) #True
print(isinstance((), Iterable)) #True
print(isinstance(100, Iterable)) #False

迭代器:可以被next()调用不断返回下一个值的对象称之为迭代器(Iterator)

 from collections import Iterator

 print(isinstance({}, Iterator))  #False
print(isinstance([], Iterator)) #False
print(isinstance('iterable', Iterator)) #False
print(isinstance((), Iterator)) #False
print(isinstance((x for x in range(5)), Iterator)) #True #上述可知,列表、字典、字符串、元祖等都不属于迭代器(Iterator)

可迭代对象能否变成迭代器呢?通多内置方法iter()可以实现

 from collections import Iterator

 print(isinstance(iter({}), Iterator))  #True
print(isinstance(iter([]), Iterator)) #True
print(isinstance(iter('iterable'), Iterator)) #True
print(isinstance(iter(()), Iterator)) #True
print(isinstance((x for x in range(5)), Iterator)) #True

小结:

 #Python的For循环本质就是不断通过调用next函数实现的例如下面两段代码

 #代码一

 for x in range(10):
print(x) #代码二
it = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
while True:
try:
x = next(it)
print(x)
except StopIteration:
break
#代码一与代码二等价

最新文章

  1. java根据html生成摘要
  2. [转]Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合
  3. WCF 数据服务 4.5
  4. Eclipse常用设置(转)
  5. 如何快捷输入函数上方的注释代码(Summary)
  6. mybatis获得刚刚插入的自增的值
  7. SQL 递归查询
  8. Problem 1010 - 素数环问题
  9. Objective-c知识小结
  10. android 利用反射机制获取drawable中所有的图片资源
  11. 防止aspx木马的IIS SPY变态功能
  12. windows phone 8.1开发:socket通信聊天
  13. c++11の数据竞争和互斥对象
  14. keras 中模型的保存
  15. golang开源项目qor快速搭建网站qor-example运行实践
  16. Windows下VMware14黑屏
  17. SQLI DUMB SERIES-12
  18. android 获取对权限的选择
  19. 使用Pyquery+selenium抓取淘宝商品信息
  20. 认识MySQL中的索引

热门文章

  1. kNN算法python实现和简单数字识别
  2. redis非特定类型命令
  3. 【转】Linux下进程/程序网络带宽占用情况查看工具 -- NetHogs
  4. FZU月赛20160416 ABEF
  5. 读写注册表 registrykey 创建删除
  6. tornado学习笔记14 HTTP1ServerConnection分析
  7. MongoDB查询操作限制返回字段的方法
  8. [IOS]Swift使用SVGKit的记录
  9. Linux 下 JAVA 安装及配置
  10. MySQL语句执行顺序