1、生成器的本质是迭代器

2、生成器函数

  def  fn()

    函数体

    yield

  fn()

  g = fn()

  此时这个g就是生成器

  所以g 是可迭代的

  g._ _next_ _

  

  每执行一次_ _next_ _,函数就会走到yield 的位置。

·  

  生成器函数可以执行for 循环

  

  生成器在进行list 操作时,内部也进行了_ _next_ _的操作

  

3、send

  生成器除了_ _next_ _ ,还可以用send()进行下一步的操作,每次都会执行到yield。

  

4、推导式

  列表推导式:

  

  字典推导式

  

  

  set集合推导式

  

  生成器表达式

  

   生成器表达式 和 列表推导式的区别

   1)列表推导式比较耗内存,一次性加载。生成器表达式几乎不耗内存,使用的时候才会分配和使用内存。

   2)列表推导式得到的是一个列表,生成器表达式得到的是一个生成器。

   生成器表达式的惰性机制:生成器只有在访问的时候才取值。

python day 13 生成器 以及 推导式的更多相关文章

  1. python note 12 生成器、推导式

    1.生成器函数 # 函数中如果有yield 这个函数就是生成器函数. 生成器函数() 获取的是生成器. 这个时候不执行函数# yield: 相当于return 可以返回数据. 但是yield不会彻底中 ...

  2. 十三. Python基础(13)--生成器进阶

    十三. Python基础(13)--生成器进阶 1 ● send()方法 generator.send(value) Resumes the execution, and "sends&qu ...

  3. 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)

    # 『Python基础-12』各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的 ...

  4. python全栈开发 生成器 :生成器函数,推导式及生成器表达式

    python 全栈开发 1.生成器函数 2.推导式 3.生成器表达式 一.生成器函数 1.生成器: 生成器的本质就是迭代器 (1)生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(), ...

  5. python基础学习笔记——生成器与推导式

    生成器 首先我们来看看什么是个生成器,生成器本质就是迭代器 在python中有三种方式来获取生成器 1.通过生成器函数 2.通过各种推到式来实现生成器 3.通过数据的转换也可以获取生成器 首先,我们先 ...

  6. python:类4——魔法方法(定制序列、迭代)、生成器、推导式

    一.定制序列(容器类型) http://bbs.fishc.com/forum.php?mod=viewthread&tid=48793&extra=page%3D1%26filter ...

  7. day13 python生成器函数 推导式 生成器

    day13 python   一.生成器     生成器的本质就是迭代器     生成器的特点和迭代器一样. 取值方式和迭代器一样(__next__())     由生成器函数或生成器表达式来创建   ...

  8. Python生成器、推导式之前襟后裾

    生成器 函数体内有yield选项的就是生成器,生成器的本质是迭代器,由于函数结构和生成器结构类似,可以通过调用来判断是函数还是生成器,如下: def fun(): yield "我是生成器& ...

  9. python基础之 迭代器回顾,生成器,推导式

    1.迭代器回顾 可迭代对象:Iterable 可以直接作用于for循环的对象统称为可迭代对象:Iterable.因为可迭代对象里面存在可迭代协议,所以才会被迭代 可迭代对象包括: 列表(list) 元 ...

随机推荐

  1. 九度oj 题目1537:买卖股票

    题目描述: 给定一个大小为n的数组,数组的元素a[i]代表第i天的股票价格. 设计一个算法,计算在最多允许买卖k次(一买一卖记为一次)的条件下的最大收益. 需要注意的是,你不能同时拥有两份股票.也就是 ...

  2. 刷题总结——瞭望塔(bzoj1038)

    题目: Description 致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安.我们将H村抽象为一维的轮廓.如下图所示 我们可以用一条山的上方轮廓折线 ...

  3. 【线段树查询区间最值】poj 3264 Balanced Lineup

    #include<cstdio> #include<algorithm> using namespace std; ; struct Seg { int l,r,mi,ma; ...

  4. com.alibaba.fastjson和org.json遍历获取key

    推荐都是用fastjson.org.json好像不支持序列化. com.alibaba.fastjson遍历获取key的方法: //fastjson解析方法 for (Map.Entry<Str ...

  5. Codevs 1026 逃跑的拉尔夫

     时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆车,但他没想到的是那辆车属于警察局,并且 ...

  6. android的系统学习

    先从Android的应用开发开始,等到对应用掌握的比较熟悉了,开始慢慢阅读一些Android 应用框架层的源代码,然后再渐渐往下去了解Android的JNI.Libraries.Dalvik虚拟机.H ...

  7. (6)DataTable 转换成 Json

    下载  Json.Net DLL      http://www.newtonsoft.com/json    需要FQ using Newtonsoft.Json; public string Da ...

  8. Struts2的标签三大类是什么?

    Struts2 标签 一 Struts标签的简介: Struts2 自己封装了一套标签,比 JSTL 强大,而且与 Struts2 中的其他功能无缝结合. 当然 Strust2 标签的内容很多,随着版 ...

  9. 初涉Git/Github

    初涉Git/Github 第一部分:我的本次作业成果 我自己个人的github地址是:STRSong 我们开发团队小组的github地址是:三组 第二部分:给同学推荐github资源 推荐1 这个推荐 ...

  10. BZOJ3786 星际探索

    @(BZOJ)[DFS序, Splay] Description 物理学家小C的研究正遇到某个瓶颈. 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其 ...