自学内容网 自学内容网

python实现可迭代对象、生成器

next

    是 Python 中迭代器对象的一个方法,用于获取下一个元素。
    当使用迭代器进行迭代时,通过调用 __next__ 方法可以依次获取迭代器中的元素,
    直到没有更多元素可获取时,会引发 StopIteration 异常。
产生生成器的方法:
  1. 使用函数和 yield 关键字**:在函数中使用 yield 语句来定义生成器。
  def func()
            ...
            yield
  1. 列表推导式**:可以通过在列表推导式中使用 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. 可迭代对象是能够通过迭代操作依次获取元素的对象,
  3. 而迭代器是实现了迭代器协议的对象,它不仅可以被迭代,
  4. 还能记住当前的迭代位置,并在每次迭代时返回下一个元素。
    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)!