一、生成器

1、什么是生成器

  在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回一个值,该值称之为生成器,生成器本质就是迭代器

2、为什么要有生成器

 生成器是一种自定义迭代器的方式

 注:

  生成器在刚刚生成时不执行里面任何代码

总结yield的功能

1、提供一种自定义迭代器的方式

2、yield可以暂停住函数,返回值

yield  VS  return

相同点:都是用在函数内,都可以返回值,没有类型限制,没有个数限制

不同点:return只能返回一次值,yield可以返回多次值

用yield写一个简单的range函数

1
2
3
4
5
def my_range(start,stop,step=1)
    while stat<stop:
        yield start
        start+=step
g=my_range(0,4)

 二、杂项

1、三元表达式

条件成立时返回值   if条件  else  条件不成立时返回值

例如:

def  max2(x,y)

  if x>y:

    return x

  else:

    return y

x=10

y=20

max2(x,y)

上述功能可以直接使用三元表达式实现:

res=x  if    x>y   else   y

print(res)

2、列表生成式

l=[item**2 for item in range(1,11)]

print(1)

names=['egon','alex_xx','wupeiqi','yuanhao']

nums=[len(name) for name in names if not name.endswith('xx')]

print(nums)

3、字典生成式

keys=['name','age','sex']

values=['egon',18,'male']

d={k:v for k,v in zip(keys,values)}

print(d)

3、生成器表达式

g=(i  for  i  in  range(10))

  print(g)

最新文章

  1. 把CMSampleBufferRef转成Data
  2. String.format中大括号的加入方法
  3. SQL注入测试平台 SQLol -3.INSERT注入测试
  4. Sqli-labs less 55
  5. JavaSE生成随机数
  6. 网络流(最小费用最大流):POJ 2135 Farm Tour
  7. AspNet MVC4 教学-22:Asp.Net MVC4 Partial View 技术高速应用Demo
  8. 0.搭建myeclipse开发环境
  9. Redis学习笔记(三)常用命令整理
  10. MySQL 栏位修改为区分大小写
  11. neutron-删除负载均衡器
  12. Spring Boot中使用Swagger2构建RESTful APIs
  13. Delphi 实现自动更新
  14. python五十七课——正则表达式(元字符)
  15. java安全删除一个文件,防止工具恢复数据
  16. php 接收blob数据流,base64数据流 转为 blob二进制数据流
  17. mobx 知识点
  18. jquery实现增删改(伪)-老男孩作业day13
  19. IBM InfoSphere DataStage 8.1 DataStage Job 开发具体解释
  20. SLAM拾萃(2):doxygen

热门文章

  1. QMap迭代器
  2. UGUI 5.0 一些笔记
  3. Django06-ORM操作
  4. IEEE/ACM International Conference on Advances in Social Network Analysis and Mining (ASONAM) 2014 Industry Track Call for Papers
  5. dbForge Studio for MySQL 中文乱码问题
  6. ARTS打卡计划第二周-Algorithm
  7. mac book pro macOS10.13.3安装qt、qt creator C++开发环境,qt5.11.1,并解决cmake构建:qt mac this file is not part of any project the code
  8. Linux NGINX部署
  9. Analysis of Servlet
  10. Vue-Router导航守卫: