首页 » 编程 » Python基础 » 正文

迭代器

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 ... 捕获异常。



发表评论

验证码加载中....