亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【2023年】第69天 python中的迭代器

標簽:
Python

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 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消