zoukankan      html  css  js  c++  java
  • 生成器和迭代器

    #迭代器

    #双下方法,很少直接调用的方法,是通过其他的语法触发的

    #可迭代的--可迭代协议,含有__iter__方法(__iter__in dir数据])

    #可迭代的一定可以for循环

    #迭代器协议含有__next__和__iter__方法

    #迭代器一定是可迭代的,可迭代的调用__iter__方法就可以得到一个迭代器

    #迭代器的特点

      1.很方便,并且所有的数据只能取一次

      2.节省内存空间

    #生成器--本质就是迭代器

    #生成器的表现形式,

      1生成器表达式

      2生成器函数  

        *含有yield的函数就是生成器函数

        *特点

          1调用函数是函数不执行,返回一个生成器

          2调用__next__方法会取到一个值,直到取完会报错

    又一个文件,从文件里分段读取内容

    #readline

    #read(10)

    #在读出来的内容前加***,再返回给调用者

    def generation():

      for i in range(1000)

        yield "fewffewf"

    g=genneration()#调用生成器函数,得到一个生成器

    g.__next__()#从生成器里面取内容,预示着代码继续执行

    number=0

    list

    for i in g:

      i+=1

      if number>50

      break

      print(i)

    #从生成器里面取值的方法

      1.for循环

      2 通过__next__

      3 通过强转print(list(g)不过太占内存了

    def genertor():

      print(1)

      yield "a"

      print(2)

      yield "a"

    ret=genertor()

    print(ret.__next__())

    print(ret)

    print(ret.__next__())

    print(ret)

      

      

  • 相关阅读:
    如何书写bat文件?(转)
    Bogon
    recursive
    ssh
    verbose
    mii-tool
    ExtJs 中的ext.date
    一个打包机~~~
    图标库--宝藏
    几种常用的控件(下拉框 可选框 起止日期 在HTML页面直接读取当前时间)
  • 原文地址:https://www.cnblogs.com/648071634com/p/11661551.html
Copyright © 2011-2022 走看看