1.如何生成迭代器 - iter
- 最主要的点:按需加载
- 介绍:生成一个迭代器对象
- 用法:iter(iterable)
- 参数介绍:iterable,可迭代的数据类型
2. 迭代器的使用 - next
- 介绍:返回迭代器中的数据
- 用法:next(iterator)
- 参数介绍:迭代器对象
iter_obj = iter([1, 2, 3])
print(next(iter_obj))
print(next(iter_obj))
print(next(iter_obj))
print(next(iter_obj))
- 当我们第四次调用next函数的时候,程序报错了,报错信息为StopIteration,意思是停止迭代。
3. 迭代器常用方法之生成迭代器
- for循环生成发 ——yield
def test():
for i in range(10):
yield 1
res = test()
print(next(res))
- for循环一行生成迭代器
res = (i for i in [1, 2, 3])
print(next(res))
4. 迭代器常用方法之for循环获取
- 不会报错
res = (i for i in [1, 2, 3])
for item in res:
print(item)
5. 迭代器案例
iter_obj = iter((1, 2, 3))
def _next(iter_obj):
try:
return next(iter_obj)
except StopIteration:
return None
def make_iter():
for i in range(10):
yield i
iter_obj = make_iter()
print(type(iter_obj))
for i in iter_obj:
print(i)
print('-----------')
for i in iter_obj:
print(i)
iter_obj = (i for i in range(10))
for i in iter_obj:
print(i)
print("===========")
for i in iter_obj:
print(i)
- 在上述的案例中使用三种方法创建迭代器,并且在已经打印了迭代器的内容之后,就不可以拿到迭代器中的内容了,也就是在‘----’以及’===='之后就不会打印出来了。
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦