Python之路----------迭代器
2024-09-23 19:40:15
直接用作于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
#代码一与代码二等价
最新文章
- java根据html生成摘要
- [转]Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合
- WCF 数据服务 4.5
- Eclipse常用设置(转)
- 如何快捷输入函数上方的注释代码(Summary)
- mybatis获得刚刚插入的自增的值
- SQL 递归查询
- Problem 1010 - 素数环问题
- Objective-c知识小结
- android 利用反射机制获取drawable中所有的图片资源
- 防止aspx木马的IIS SPY变态功能
- windows phone 8.1开发:socket通信聊天
- c++11の数据竞争和互斥对象
- keras 中模型的保存
- golang开源项目qor快速搭建网站qor-example运行实践
- Windows下VMware14黑屏
- SQLI DUMB SERIES-12
- android 获取对权限的选择
- 使用Pyquery+selenium抓取淘宝商品信息
- 认识MySQL中的索引