列表生成式:

 '''
2018-5-26 19:40:58
生成器(generator):在Python中,这种⼀边循环⼀边计算的机制。
'''
# 第一种实现 :只要把⼀个列表⽣成式的[ ]改成( )
#这是一个生成式
L = [x*2 for x in range(5)]
print(L)
# for i in range(5) for循环5次
G = (x*2 for x in range(5))
print(G)
'''
创建L和G的区别仅在于最外层的[ ]和( ),
L是⼀个列表,⽽G是⼀个 ⽣成器。
我们可以直接打印出L的每⼀个元素,
但我们怎么打印出G的每⼀个 元素呢?
如果要⼀个⼀个打印出来,
可以通过next()函数获得⽣成器的下⼀个返回值
'''
#使用一个小小的while循环把生成器打印东西都储存到列表中
b = []
while True:
a = next(G)
print(a)
b.append(a)
break
'''
不用第三个变量完成变量交换
'''
a = 8
b = 5
a = a+b
b = a-b
a = a-b
#在python中
a,b = b,a #第二种实现,用函数方式实现
#斐波拉契数列
#只要函数里面有yield 则是一个生成器,是生成一个生成器的对象
def creatNum():
print("-----start-----")
a,b = 9,1
for i in range(5):
print("---1-----")
#让程序停了
yield b
a,b = b ,a+b
print("-----3-----")
print("------stop__________")
print(creatNum()) #生成了一个对象
a = creatNum()
next(a)

												

最新文章

  1. discuz模板语法
  2. TypeScript 素描 - 函数
  3. python 编码问题
  4. 自然语言25_nltk.book
  5. JavaWeb---总结(九)通过Servlet生成验证码图片
  6. 向数据库中导入AWR数据
  7. Java中的json数据类型操作
  8. Lighttpd日志打印格式
  9. [待续]Async in C# 1
  10. 关于CoreData的理解和使用.
  11. C# Windows Sockets (Winsock) 接口 (转)
  12. $($('.className').html( )选择器的工作原理
  13. Selenium八种基本定位方式---基于python
  14. 细说javascripe事件传播流程
  15. java框架之Spring(4)-Spring整合Hibernate和Struts2
  16. golang xorm框架的使用
  17. 采用busybox 代替android 自带的shell
  18. opencv边缘检测的入门剖析(第七天)
  19. 用.net开发音频编辑软件
  20. c++11 List 容器

热门文章

  1. Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换
  2. vmware虚拟机环境下配置centos为静态IP的步骤
  3. Delphi读取不Word中不规则表格数据并转换成标准表格
  4. Orace 12.2 ORA-12012: error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_21"
  5. Winform开发框架之通用附件管理模块 --SNF快速开发平台3.3-Spring.Net.Framework
  6. ASCII、Unicode和UTF-8编码的区别
  7. Android中获取应用程序(包)的信息-----PackageManager的使用
  8. hadoop无法停止
  9. jquery easyui 中tab页添加其他页面,href与content的用法与区别
  10. Tip 18 – How to decide on a lifetime for your ObjectContext