python实现可迭代对象、生成器
next
是 Python 中迭代器对象的一个方法,用于获取下一个元素。
当使用迭代器进行迭代时,通过调用 __next__ 方法可以依次获取迭代器中的元素,
直到没有更多元素可获取时,会引发 StopIteration 异常。
产生生成器的方法:
- 使用函数和
yield
关键字**:在函数中使用yield
语句来定义生成器。
def func()
...
yield
- 列表推导式**:可以通过在列表推导式中使用
yield
来创建生成器。
gen = (i for i in range(5))
generator就是生成器
1. __next__():获取生成器中的下一个元素。
2. send(value) :向生成器发送一个值,并继续执行生成器函数到下一个 `yield` 语句。
3. throw(type, value=None, traceback=None):在生成器内部抛出异常。
4. close():关闭生成器,后续再调用 `__next__()` 会引发 `StopIteration` 异常。
协程:
执行过程中暂停和恢复,允许在一个函数内部实现多个任务的协作执行。
协程通过yield关键字或特定的协程库来实现。
Python 的可迭代对象:
1. 列表(List)
2. 元组(Tuple)
3. 字符串(String)
4. 字典(Dictionary)
5. 集合(Set)
6. 文件对象(File Objects)
迭代器与可迭代对象:
- 可迭代的对象并不一定就是迭代器。
- 可迭代对象是能够通过迭代操作依次获取元素的对象,
- 而迭代器是实现了迭代器协议的对象,它不仅可以被迭代,
- 还能记住当前的迭代位置,并在每次迭代时返回下一个元素。
1. 迭代器:是一个对象,它实现了迭代器协议,能够逐个返回元素。
2. 生成器:是一种特殊的迭代器,它通过使用yield
关键字来定义,可以在执行过程中暂停和恢复,按需生成元素。
生成器是创建迭代器的一种简洁方式,它让迭代过程更加灵活和高效。
#判断是否为可迭代对象
from collections.abc import Iterable
obj = [1, 2, 3] # 替换为你要判断的对象
if isinstance(obj, Iterable):
print("这是一个可迭代对象")
else:
print("这不是一个可迭代对象")
原文地址:https://blog.csdn.net/qq_45755863/article/details/143706526
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!