标签:迭代 及其 生成器 iter next print isinstance Python3
# 生成器都是迭代器,迭代器不一定是生成器
# 字符串、列表、元组、字典、集合都可以被for循环,说明他们都是可迭代的
L = [1, 2, 3, 4, 5]
# L.__iter__() 尽量不用 底层内置函数
d = iter(L)
print(d) # <list_iterator object at 0x000000000069A358>
# 什么是迭代器
# 满足两个条件 1 有iter方法 2 有next方法
print(next(d)) # 1
# for 循环内部做的三件事情
# 1 调用可迭代对象的iter方法返回一个迭代器对象
# 2 不断调用迭代器对象的next方法
# 3 处理stopIteration
from collections import Iterable
print(isinstance([1, 2, 3], list)) # 判断数据类型
L = [1, 2, 3, 4, 5]
d = iter(L)
print(d)
print(isinstance(L, list)) # 判断是不是 列表
print(isinstance(d, Iterable)) # 判断是不是迭代器 注意引用包
要点:
- 生成器都是迭代器,迭代器不一定是生成器
- 字符创,列表,元组,字典,集合都可以被for循环,说明他们都是可迭代对象
- 若可以调用__iter__() 都是可迭代对象。但是一般使用iter() 函数
- 满足迭代器的两个条件:1.有iter() 。2. 有next()
- isinstance() 类型判断。isinstance(a,Iterable) 判断a 是否是可迭代对象。
标签:迭代,及其,生成器,iter,next,print,isinstance,Python3 来源: https://blog.csdn.net/qq_26816591/article/details/88599609
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。