打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Iterator迭代器和生成器
在Python中,迭代器对象实现了iter()next()两种方法。
String,ListTuple对象可用于创建Iterator
----------------------------------------------------
list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) # 输出下一个元素 1
for x in it:          #完整输出
   print (x, end=" ")#2 3 4 
-----------------------------------------------------
list = [1,2,3,4]
it = iter(list) # this builds an iterator object
#or using next() function
while True:
   try:
      print (next(it))
   except StopIteration:
      sys.exit() #you have to import sys module for this
---------------------------------------------------------------
Iterable--(可迭代对象)
直接作用于for循环:
list、tuple、dict、set、str(集合数据类型)
generator--(生成器)和带yield的generator function 
生成器都是Iterator对象

generator--(生成器)
Iterator--(迭代器)
Iterable--(可迭代对象)list、dict、str
iter()函数--变成Iterator
isinstance()判断--Iterable(可迭代对象)--Iterator对象
next()函数
StopIteration错误
Iterator对象--表示的是一个无限大数据流--看做有序序列(全体自然数)

generator--(生成器)
可以作用于for循环
还可以被next()函数不断调用并返回下一个值
最后抛出StopIteration错误,无法继续返回下一个值了

Iterator--(迭代器)
可以被next()函数调用
不断返回下一个值的对象

isinstance()判断
>>> from collections import Iterator
>>> isinstance((x for x in range(10)), Iterator)
True
>>> isinstance([], Iterator)
False
>>> isinstance({}, Iterator)
False
>>> isinstance('abc', Iterator)
False

iter()函
>>> isinstance(iter([]), Iterator)
True
>>> isinstance(iter('abc'), Iterator)
True









分享知识,分享快乐!希望中国站在编程之巅!

               ----

公众微信号:rsgz520

360图书馆馆号:rsgz002.360doc.com
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python迭代和生成操作小结
【Python之路】特别篇
Python学习——for循环,生成器,迭代器详解
面试题-python 什么是迭代器?
更深入理解 Python 中的迭代
Python核心编程的四大神兽:迭代器、生成器 、闭包以及装饰器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服