迭代器

day23

判断是否是可迭代的:只要对象本身有__iter__方法,那他就是可迭代的对象

d = {"a": 1, "b": 2, "c": 3}
d.__iter__()  # 有这个方法就表示是可迭代对象 ,等同于 iter(d)

i = d.__iter__()  # 执行后有返回值,这个返回值就是这个对象对应的迭代器,这里 i 就是迭代器
print(i.__next__())  # 迭代器中的__next__()方法 即可获得下一个值,等同于next(i)

迭代器优点:

  1. 提供了一种统一的迭代对象的方式,不依赖索引

  2. 惰性计算

缺点:

  1. 无法获取迭代器的长度

  2. 一次性的,只能往后取值,不能往前退,不能像索引那样去取得某个位置的值

例子:

d = {"a": 1, "b": 2, "c": 3}
i = d.__iter__()    # 生成迭代器

while True:
    try:
        print(i.__next__())
    except StopIteration:
        break
        
或者:
for i in d:  # 这里for循环里的d相当于 d.__iter__()
    print(i)

运行结果:

a
b
c

使用 try ... except ... 捕获异常。

版权声明:
作者:admin
链接:https://www.chenxie.net/archives/1644.html
来源:蜀小陈
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>