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).?成器的惰性机制: ?成器只有在访问的时候才取值.

原文地址:https://www.cnblogs.com/amirky/p/10211552.html

时间: 2024-11-06 03:45:58

python之路---12 生成器 推导式的相关文章

(一)Python入门-4控制语句:10推导式创建序列-列表推导式-字典推导式-集合推导式-生成器推导式

推导式创建序列: 推导式是从一个或者多个迭代器快速创建序列的一种方法.它可以将循环和条件判断结合, 从而避免冗长的代码.推导式是典型的Python 风格,会使用它代表你已经超过Python初 学者的水平. 一:列表推导式 列表推导式生成列表对象,语法如下: [表达式 for item in 可迭代对象 ] 或者:{表达式 for item in 可迭代对象 if 条件判断} 1 #列表推导式 2 x = [x for x in range(1,5)] 3 print(x) 4 5 x = [x*

python 第十二章 生成器+推导式+内置函数一(不常用的)

生成器 # 迭代器:python中内置的一种节省空间的工具 # 生成器的本质就是一个迭代器 # 区别:迭代器自带的,生成器自己写的 # return可以写多个,但是只执行一次 # yield会记录执行位置 # 一个next()对应一个yield def func(): print(123) return "you" print(func()) # 123 # you # return和yield 都是返回值 # 在函数体内将return改成yield的就是一个生成器 def func(

Python——生成器&推导式

生成器 生成器的本质就是迭代器,那么还为什么有生成器呢,两者唯一的不同就是迭代器都是Python给你提供能够的已经写好的工具或者通过数据转化得来的.而生成器是需要我们自己用Python代码构建的工具. 生成器的构建方式: 在python中有两种方式来创建生成器: 通过生成器函数 通过生成器推导式 生成器函数: 首先我们来一个简单的函数结构: def func(): print('111') return 222 result = func() print(result) 没得问题,那么在看看生成

4-4日 列表推导式,生成器推导式

1,列表推导式就是在列表中进行for 循环if语句判断,最多两个for,一个if判断 #求1到30 被3整除的数的平方 li = [i*i for i in range(1,31)if i%3 == 0] print(li) li = [i for i in range(1,101)if i%2 == 0] l2 = [i for i in range(1,101)if i%2 == 1] print(li) print(l2) #求列表中带两个'e'名字 names = [['Tom', 'B

part4-2 流程控制二(循环结构,while、for循环,列表推导式、生成器推导式,常用工具函数,控制循环结构,4个简单实例)

循环语句在循环条件满足时,可反复执行某一段代码,这段被重复执行的代码称为循环体.在循环体中,需要在合适的时候把循环条件设置为假,从而结束循环:否则循环一直执行下去形成死循环.循环语句通常包含如下4个部分.(1).初始化语句(init_statements):在循环开始前执行,有一条或多条语句,用于完成一些起初始化工作.(2).循环条件(test_expression):一个布尔表达式,决定是否执行循环体.(3).循环体(body_statements):循环的主体,根据循环条件是否允许,这个代码

12. 函数-推导式

一.列表推导式 1. 语法格式 [ 结果 for 变量 in 可迭代对象 if 条件 ] 2. 代码示例 # 100以内能被3整除的数的平方 gen = [i * i for i in range(100) if i % 3 == 0] for num in gen: print(num) 二.生成器推导式 1. 语法格式 ( 结果 for 变量 in 可迭代对象 if 条件 ) 2. 代码示例 # 100以内能被3整除的数的平方 gen = (i * i for i in range(100)

python迭代器,生成器,推导式

可迭代对象 字面意思分析:可以重复的迭代的实实在在的东西. list,dict(keys(),values(),items()),tuple,str,set,range, 文件句柄(待定) 专业角度: 内部含有'__iter__'方法的对象,就是可迭代对象. 内置函数:dir() print(dir(str)) 判断一个对象是否是可迭代对象: print('iter' in dir(str)) 优点: 直观. 操作方法较多. 缺点: 占内存. 不能迭代取值(索引,字典的key). 迭代器 字面意

python基础-三元表达式/列表推导式/生成器表达式

1.三元表达式:如果成立返回if前的内容,如果不成立返回else的内容 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2.列表推导式:l=['egg'+str(i) for i in range(1,11)] print(l) 3.生成器表达式: l=('egg'+str(i) for i in range(1,11) if i >6) for i in l: print(i) 原文地址:http

python之路系列-生成器和迭代器-景丽洋老师

返回顶部 楔子 假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式? 首先,我可以通过索引取值l[0],其次我们是不是还可以用for循环来取值呀? 你有没有仔细思考过,用索引取值和for循环取值是有着微妙区别的. 如果用索引取值,你可以取到任意位置的值,前提是你要知道这个值在什么位置. 如果用for循环来取值,我们把每一个值都取到,不需要关心每一个值的位置,因为只能顺序的取值,并不能跳过任何一个直接去取其他位置的值. 但你有没有想过,我们为什么可以