生成器-python 生成器

    SEO基础 wuya 46次浏览 已收录 0个评论

    生成器

    • 使用场景

      在使用列表时,数据量特别大时,内存的占用会突然增加,但是使用时又不需要一下子使用全部,通常都是一个一个使用,为了解决这个问题,python中引入了生成器的概念。

    • 使用方式
      • 方式1:将列表生成式的[]换成()即可
      lt = [i for i in range(10)]
      print(lt)
      
      g = (i for i in range(10))
      # print(g)
      
      # 可以一个一个提取,没有数据继续提取则会报错StopIteration
      print(next(g))
      print(next(g))
      # print(next(g))
      
      # 可以遍历
      # for i in g:
      #     print(i)
      
      # 可以转换为列表
      print(list(g)) 

    无论哪种方式操作都是单次的

    • 方式2:在函数中使用yield关键字
      '''
      # 当数据量非常大时,会造成内存占用突然增大
      def test(n):
          lt = []
          for i in range(1, n+1):
              lt.append(i)
          return lt
    
      print(test(3))
      '''
    
      def test(n):
          for i in range(1, n+1):
              # 每次获取一个元素,yield后面的值会返回
              # 执行到yield程序又会停止
              yield i   
              
      # t是一个生成器
      t = test(3)
      print(t)
    
      # print(next(t))
      # for i in t:
        # print(i)
    
      print(list(t))

    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明生成器-python 生成器
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址