可迭代对象和迭代器类型

2021-01-05  本文已影响0人  庄周幻梦

可迭代对象(Iterable):凡是可以使用for循环遍历的都是可迭代对象
数据类型实现了迭代协议:(类里面定义了iter方法)

迭代器类型(Iterator):也是可迭代对象
数据类型实现了迭代器协议:

  1. 类里面定义了iter方法(迭代协议)
  2. 类里面定义了next方法
    迭代器能够使用next方法进行迭代操作

所有的可迭代对象->可以转换为迭代器:
li=iter([11,22,33])

from collections.abc import Iterable, Iterator

List = [11, 22, 33]
print(isinstance(List, Iterable))   # True
print(isinstance(List, Iterator))   # False

List = iter(List)
print(isinstance(List, Iterable))   # True
print(isinstance(List, Iterator))   # True

for循环实现机制:
迭代器+while循环实现

def func(a):
    tor = iter(a)
    while True:
        try:
            print(next(tor))
        except StopIteration:
            break
List = [11, 22, 33]
func(List)
上一篇下一篇

猜你喜欢

热点阅读