zoukankan      html  css  js  c++  java
  • day12,迭代器,生成器。

     一:迭代器
      1,__iter__() 获取迭代器
      2,_next__() 下一个元素

     二:生成器
      1,本质就是迭代器
      两种方式写生成器
      1. 生成器函数
      2. 生成器表达式

      生成器函数
      函数内部有yield. yield返回 -> return
      yield可以把函数分段执行
      生成器函数被调用的时候. 返回生成器
      def func():
      yield
      g = func() - 得到生成器

      生成器的用法和迭代器基本一致
      __next__() 开始执行生成器 . 执行到yield. 直到没有yield. 抛出StopIteration

      send() 可以给上一个yield传值

      1. 省内存
      2. 惰性机制, 不访问__next__() 就没有值.
      3. 只能向前. 不能反复.


      各种推导式(简单)
      列表推导式 [结果 for循环 if判断]
      字典推导式 {key: value for循环 if判断}
      集合推导式 {key for循环 if判断}

      生成器表达式(最难)
      (结果 for循环 if判断)
      惰性机制, 不访问__next__() 就没有值.
      只能向前. 不能反复.

  • 相关阅读:
    python之路_保留原搜索页面条件
    python之路_面向对象相关知识点
    2-SAT习题讲解
    圆方树浅谈
    莫队浅谈&题目讲解
    矩阵树定理浅谈
    动态点分治浅谈
    线性基浅谈
    模板—费用流(最小费用最大流)
    模板—数学—Exgcd
  • 原文地址:https://www.cnblogs.com/wm828/p/9890697.html
Copyright © 2011-2022 走看看