python之路---12 生成器 推导式
三十、函数进阶
1.生成器 函数中有yield 的就是生成器函数(替代了return)
本质就是迭代器 一个一个的创建对象 节省内存
①创建生成器 最后以yield结束
1. 通过⽣成器函数
2. 通过各种推导式来实现⽣成器
3. 通过数据的转换也可以获取⽣成器 
②send用法
send 和 __next__都是下一个的意思
但send可以给上一个yield 位置传值 不能给最后⼀个yield发送值. 在第⼀次执⾏⽣
成器代码的时候不能使⽤send()

③yield from
把一个yield from循环完再循环下一个yield from

2.推导式 (只有列表,字典,集合 . 没有元组)
1). 列表推导式 [ 结果 for循环 if 条件]

2).字典推导式 { 结果(k,v) for循环 if 条件}

3).集合推导式 {k for循环 if 条件}
集合的特点: ⽆序, 不重复. 所以集合推导式⾃带去重功能

3.生成器函数
1).生成器表达式 (i for i in range(10))

2).可以使⽤for循环来循环这个⽣成器:

3).⽣成器表达式也可以进⾏筛选

4).⽣成器的惰性机制: ⽣成器只有在访问的时候才取值.

python之路---12 生成器 推导式的更多相关文章
- Python之路-迭代器 生成器 推导式
迭代器 可迭代对象 遵守可迭代协议的就是可迭代对象,例如:字符串,list dic tuple set都是可迭代对象 或者说,能被for循环的都是可迭代对象 或者说,具有对象.__iter__方法的都 ...
- 记录我的 python 学习历程-Day12 生成器/推导式/内置函数Ⅰ
一.生成器 初识生成器 生成器的本质就是迭代器,在python社区中,大多数时候都把迭代器和生成器是做同一个概念. 唯一的不同就是: 迭代器都是Python给你提供的已经写好的工具或者通过数据转化得来 ...
- python ---12 生成器 推导式
一.生成器 函数中有yield 的就是生成器函数(替代了return) 本质就是迭代器 一个一个的创建对象 节省内存 1.创建生成器 最后以yield结束 1. 通过⽣成器函数 2. ...
- 12.Python略有小成(生成器,推导式,内置函数,闭包)
Python(生成器,推导式,内置函数,闭包) 一.生成器初始 生成器的本质就是迭代器,python社区中认为生成器与迭代器是一种 生成器与迭代器的唯一区别,生成器是我们自己用python代码构建成的 ...
- Python函数04/生成器/推导式/内置函数
Python函数04/生成器/推导式/内置函数 目录 Python函数04/生成器/推导式/内置函数 内容大纲 1.生成器 2.推导式 3.内置函数(一) 4.今日总结 5.今日练习 内容大纲 1.生 ...
- Python进阶(四)----生成器、列表推导式、生成器推导式、匿名函数和内置函数
Python进阶(四)----生成器.列表推导式.生成器推导式.匿名函数和内置函数 一丶生成器 本质: 就是迭代器 生成器产生的方式: 1.生成器函数
- Python——生成器&推导式
生成器 生成器的本质就是迭代器,那么还为什么有生成器呢,两者唯一的不同就是迭代器都是Python给你提供能够的已经写好的工具或者通过数据转化得来的.而生成器是需要我们自己用Python代码构建的工具. ...
- python 列表推导式,生成器推导式,集合推导式,字典推导式简介
1.列表推导式multiples = [i for i in range(30) if i % 2 is 0]names = [[],[]]multiples = [name for lst in n ...
- day14(2)---列表推导式、生成器推导式、字典推导式、三元表达式
一.列表推导式: ls = [元素表达式 for i in 可迭代对象 if 筛选条件] 案例: # -*- coding: utf-8 -*- '''列表生成式练习''' # 练习一(三元表达式): ...
随机推荐
- java基础学习之final关键字
final可以修饰类.方法.变量,一旦使用了final则将不能改变被修饰的对象的引用; 被final修饰的类不可以被继承 被final修饰的方法不可以被覆盖 被final修饰的变量一般为常量,只允许对 ...
- aapt获取包名和activity,启动app
1.android sdk的环境安装好了之后,在build-tools\** 的目录下找到aapt.exe,将这个路径设置环境变量,添加到path下 2.在cmdl里面输入:aapt,出现以下内容就是 ...
- 『转』credential Provider 简易改写攻略
本次小学期的题目是windows下的凭证改编.本人负责的是Win7 下的credentials Provider 的编写以及其他杂七杂八的工作.当然给我印象最深的就是credentials provi ...
- kbmMWUnidac直接SQLServer
UniDAC支持SQLServer直联了,当时就测试过在kbmMW中用直联方式,结果不尽人意,kbmMWServer在执行sql时会出地址错误,就一直没有进一步测试.今天听xalion说,是因为当直联 ...
- 配置MAVEN环境变量
在配置maven前一定要先配置java jdk 的环境变量 和java配置一样 先写一个MAVEN_HOME:F:\java\apache-maven-3.5.2 (就是你maven 的下载位置) 写 ...
- 线程简述(Thread)
线程: 进程是一个正在运行的程序,例如电脑上现在在运行的qq,浏览器,电脑管家,这些都是进程 线程就是每一个进程中的一个执行单元,每一个进程至少一个线程,可以有多个线程,例如浏览器上每一个打开的网页都 ...
- js- caller、 callee
caller 返回一个对函数的引用,该函数调用了当前函数. functionName.caller functionName对象 是所执行函数的名称. 说明 对于函数来说 ...
- 推荐系统-0X-电影推荐与结果评估
import spark.sql import org.apache.spark.sql.types._ import org.apache.spark.mllib.recommendation.AL ...
- 10.2.0.5环境dg测试logminer挖掘日志分析
起因:客户需求,数据库正常每天总的日志切换是20以内,有一天日志切换总数,达到30,客户建议使用Logminer进行日志挖掘分析,到底什么应用导致的问题. 说明:使用logminer进行日志挖掘,只能 ...
- RuntimeError: Broken toolchain: cannot link a simple C program
今天Python2.7下安装numpy的时候遇到了此错误,进过查阅发现以下方法可行 在Python27\Lib\distutils\msvc9compiler.py 文件中,找到 mfinfo = s ...