一丶生成器

生成器:本质是迭代器,写法和迭代器不一样.用法和迭代器一样

print("__iter__"in dir(gen))

生成器函数:函数中带有yield,执行生成器函数的时候返回生成器,而不是执行这个函数

def func

  print("你好啊,我叫赛利亚")

  yield"西岚的武士刀" #retunrn和yield都可以返回数据

ret=func() #ret是一个生成器

print(ret)

s=__next__() #当执行到__next__()的时候,函数菜真正开始执行

print("接收的是",s)

特点:

  1.节省内存,几乎不占内存

  2.惰性机制

  3.只能往前走

send()也可以实现类似__next__()的效果,send()可以给上一个yild传值

def func()

  print("韭菜盒子")

  a=yield"哇哈哈"

  print("肉包子"a)

  b=yield"脉动"

  print("锅包肉",b)

  yield"冰红茶"

gen=func

ret=gen.__next__()

print(ret)

ret=gen.send("刘德华")   #给上一个yield传值

print(ret)

send和__next__()的区别

  1.send不可以开头

  2.send可以给上一个yield传值,不能给最后一个yield传值

  3.生成器本质是迭代器.print("__iter__"in dir(gen))

  4.生成器可以直接用for

lst=list(gen)#把生成器中的每一个数据拿出来组合成一个列表

print(lst)

二丶推导器

列表:[结果  for循环  if筛选]

获取1-100内能被3整除的数lst = [i for i in range(1, 101) if i % 3 == 0]

# 100以内能被3整除的数的平⽅lst = [i*i for i in range(1, 101) if i % 3 == 0]寻找名字中带有两个e的⼈的名字

names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven','Joe'], ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]

lst = [name for first in names for name in first if name.count("e") >= 2 ]print(lst)

字典:{key:value  for循环  if 筛选}

lst1 = ["东北", "陕西", "山西", "开封", "杭州", "广东", "济南"]lst2 = ['大拉皮', "油泼面", "老陈醋", "灌汤包", "西湖鲤鱼", "早茶", "胶东一锅鲜"]

dic = {lst1[i]:lst2[i] for i in range(len(lst1))}print(dic)

集合推导器  无需不重复 可哈希

{key  for  if}

元祖没有推导式

三丶生成器表达式

生成器表达式:记录一下代码.然后每次需要的时候去生成器中执行这个代码

列表推导式:一次性把所有的数据创建出来,容易产生内存浪费

特性

  1.节省内存

  2.惰性机制

  3.只能向前

生成器函数def func():    print(111)    yield 222

g = func() #  生成器

g1 = (i for i in g) # 生成器g2 = (i for i in g1) # 生成器

print(list(g1)) # 222print(list(g2))print(list(g)) # 才会开始真正的取数据

转载于:https://www.cnblogs.com/lilei1996/p/9669304.html

DAY12-----生成器相关推荐

  1. Python学习day12(生成器,列表/生成器推导式)

    Python学习day12(生成器,列表/生成器推导式) 生成器 初始生成器 我们知道的迭代器有两种:一种是调用方法直接返回的,一种是可迭代对象通过执行iter方法得到的,迭代器有的好处是可以节省内存 ...

  2. DAY12 生成器初始与列表生成式

    初识生成器 通过前面学习的迭代器,我们知道,迭代器十分节省内存.如果在某些情况下,我们也需要节省内存,就只能自己写,我们自己用python代码实现的迭代器就称为生成器. 生成器:生成器就是自己用pyt ...

  3. day12 生成器和各种推导式

    今天主要学习了 1.生成器 2.生成器函数 3.各种推导式(比较诡异,理解了很简单,不理解很难) 4.生成器表达式(重点) 一.生成器 def func():print'我叫周润发'return '林 ...

  4. 初识生成器与生成器表达式 Day12

    一.生成器 1,生成器基本概念 生成器的实质是迭代器 迭代器:Iterator 内部同时包含了__iter__()和__next__()函数 可迭代对象:Iterable 内部包含__iter__() ...

  5. day11 - 15(装饰器、生成器、迭代器、内置函数、推导式)

    day11:装饰器(装饰器形成.装饰器作用.@语法糖.原则.固定模式) 装饰器形成:最简单的.有返回值的.有一个参数的.万能参数 函数起的作用:装饰器用于在已经完成的函数前后增加功能 语法糖:使代码变 ...

  6. day12 装饰器进阶

    day12 装饰器进阶 #装饰器进阶 #functools.wraps #带参数的装饰器 #多个装饰器装饰用一个函数 def outer(*args,**kwargs):#接收的时候是聚合(成元祖的形 ...

  7. day12—迭代器生成和模块笔记

    day12-迭代器生成和模块 一.变量作用域 1.变量作用域--变量可使用的范围 根据变量作用域的不同可将变量分为:全局变量,局部变量 1.全局变量 没有定义在函数或者类中的变量都是全局变量,全局变量 ...

  8. Python 生成器总结

    通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含 100 万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数 ...

  9. 完全理解Python迭代对象、迭代器、生成器

    本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators,俺写的这篇文章是按照自己的理解做的参考翻译,算不上是原文的中译版本,推荐阅读原文,谢谢网 ...

  10. python特性(八):生成器对象的send方法

    生成器对象是一个迭代器.但是它比迭代器对象多了一些方法,它们包括send方法,throw方法和close方法.这些方法,主要是用于外部与生成器对象的交互.本文先介绍send方法. send方法有一个参 ...

最新文章

  1. scala入门之识别函数式风格
  2. cp: omitting directory”错误
  3. 正则表达式(grep命令,egrep命令,sed命令,awk命令,sort工具,uniq工具)
  4. Win11任务栏空白怎么办 Win11任务栏空白解决办法
  5. BZOJ3597 [Scoi2014]方伯伯运椰子 【二分 + 判负环】
  6. 《每周一点canvas动画》——圆周运动
  7. MySQL(17)--- LIKE 子句
  8. c# webform ajax操作,C#-WebForm-AJAX阿贾克斯(一)基本格式
  9. Flask redirect
  10. Python实战从入门到精通第三讲——数据结构与算法1之解压序列赋值
  11. Unity Android 打开相册和摄像头
  12. Tricks(三十七)—— C++ string类 split 的实现
  13. mysql在文件里修改用户_mysql用户密码修改,用户添加、删除、设置权限及源文件恢复数据库...
  14. hdu2084数塔----DP入门
  15. 【图像加密】基于matlab仿射变换数字图象置乱【含Matlab源码 1171期】
  16. ivx中字体显示_Windows 7 中的 SimSun-ExtB 是什么字体,为何与中易宋体 SimSun 显示出来不一样?...
  17. 基于java的化妆品购物商城微信小程序的设计与实现 毕业设计毕设参考
  18. 带通滤波器中心频率计算公式中R是哪个值_手把手教系列之IIR数字滤波器设计实现...
  19. 用python爬虫写一个属于自己的彩虹屁生成器!
  20. 安卓java 模拟直装_安卓2.3java模拟器下载

热门文章

  1. live-server的使用
  2. 电磁继电器与固态继电器
  3. 【前端】Vue+Element UI案例:通用后台管理系统-代码总结(已开源)
  4. 中顶医药销售软件员工提成如何设置
  5. PTA 7-4 十进制转二进制 (10 分)
  6. 荆棘鸟last一段...
  7. 计算机组成原理笔记【全-408统考】【附思维导图】
  8. 【腾讯云 Finops Crane 集训营】我的 Crane 云成本优化之旅
  9. EEG脑电数据分析(不太专业,仅仅只有操作步骤)
  10. Python发送手机短信(融合云信平台)