迭代器
day23
判断是否是可迭代的:只要对象本身有__iter__方法,那他就是可迭代的对象
d = {"a": 1, "b": 2, "c": 3}
d.__iter__() # 有这个方法就表示是可迭代对象 ,等同于 iter(d)
i = d.__iter__() # 执行后有返回值,这个返回值就是这个对象对应的迭代器,这里 i 就是迭代器
print(i.__next__()) # 迭代器中的__next__()方法 即可获得下一个值,等同于next(i)
迭代器优点:
-
提供了一种统一的迭代对象的方式,不依赖索引
-
惰性计算
缺点:
-
无法获取迭代器的长度
-
一次性的,只能往后取值,不能往前退,不能像索引那样去取得某个位置的值
例子:
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 ... 捕获异常。
共有 0 条评论