python使用 - Iterable, Iterator

发布时间 2023-09-04 23:25:56作者: yanghui01

Iterable: 表示可迭代对象, 用于获取迭代器(实现__iter__函数来返回迭代器)

Iterator: 表示迭代器,用于遍历元素(通过__next__函数),迭代器也是可迭代对象

from collections.abc import Iterable, Iterator

my_list = [1, 2, 3]
my_iterator = iter(my_list)
print(type(my_iterator)) # <class 'list_iterator'>
print(isinstance(my_list, Iterable), isinstance(my_list, Iterator)) #True False
print(isinstance(my_iterator, Iterable), isinstance(my_iterator, Iterator)) #True True

print(next(my_iterator)) # 1
print(next(my_iterator)) # 2
print(next(my_iterator)) # 3
# print(next(my_iterator)) # 没有更多元素了, 会抛异常: StopIteration

 

*+迭代器:表示展开迭代器

my_list = [1, 2, 3]
my_iterator = iter(my_list)
print(*my_iterator) # 1 2 3

 

参考

Python中可迭代对象、迭代器以及iter()函数的两个用法详解 - 知乎 (zhihu.com)

Python中的Iterator和Iterable类_patrickpdx的博客-CSDN博客

Python之Iterable与Iterator - 知乎 (zhihu.com)

Python学习笔记:迭代器(Iterator)详解 - 卡吧不死机 - 博客园 (cnblogs.com)