码迷,mamicode.com
首页 > 编程语言 > 详细

Python之路-生成器

时间:2017-07-25 13:29:35      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:赋值   调用   yield   函数实现   生成   返回   运算   并行   range   

列表生成式:[f(x) for i in range(k)]>>>其中k是常数,f(x)是一个关于i的常数
使用函数实现一个生成器:
def fib(max):
    n,a,b = 0,0,1
    while n<max:
        yield b    #关键 yield具有保持值,并通过生成器的__next__()方法返回
            a,b = b,a+b
        n += 1
    return "error" #返回错误信息
 
生成器的并行运算:生成器通过send(val)方法将值val发送给yield,并将val值赋给yield表达式
赋值:a,b = b,a+b 等价于 t = (b,a+b) a = t[0] b = t[1]
  • 生成器只有在调用时才会生成相应的数据
  • 生成器只记录当前位置
  • 生成器只有__next__()一个方法

Python之路-生成器

标签:赋值   调用   yield   函数实现   生成   返回   运算   并行   range   

原文地址:http://www.cnblogs.com/chiang97912/p/7233483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!