python 迭代器、生成器待续。。

一、迭代器
  1.     概念:
    • 根据记录前面元素的位置信息,去访问元素的过程—遍历
    • 特点只能从前向后访问
      
    2.     可迭代对象

  • 判断可迭代对象的方法
    • iterable(��迭代对象)
      • for item in obj:(obj为可迭代对象)
      • print(item)
    • 函数isinstance(对象,类型)判读对象是否为类型的实例。
      • ex:from collections import Iterable
      • isinstance(obj,Iterable)返回bool值

  • 可迭代对象需要具备类魔法方法:
    • __iter__方法可以返回自己,可迭代对象的本质是通过iter方法提供一个可遍历的对象
      • return self

  • 迭代器具备next()方法:
    • Def__next__(self):
      • 如果需要实现一个迭代器,就需要使用__next__(self):方法

  • 获取可迭代对象的迭代器
    • Iter(可迭代对象)(返回迭代器)
  • Next(迭代器)函数调取,调取最后一个后抛出StopIteration

  • 判断一个对象是迭代器
    • isinstance(对象名,Iterator)

二、生成器(generator)
        具备二种形式
        1.生成器表达式格式(x for x in range(100))

        2.生成器是特殊的迭代器。使用方式和迭代器完全一样,内部        已经实现了next()iter()。

        3.   生成器函数

  • yield 魔法 可以暂停while循环

  • 含有yield关键字的函数已经不是普通函数了,而是生成器函数。
    • 在执行函数是能够挂起当前函数,并将yield后面的数据当作返回值返回给调用代码
    • 当在此调用该生成器的函数的时候,会继续恢复当前函数,并且紧接着上次运行的代码继续运行
    • send函数 相当于next(),区别在于可以给生成器发送数据 用法不同函数值.send()参数为发送数据。
                         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值