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

Python基础-11-迭代器/生成器

时间:2018-09-20 16:18:00      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:可迭代对象   end   迭代器   表达式   block   基础   color   二次   first   

可迭代对象:可听过调用__iter__方法,转化成有next() 方法的对象称为可迭代对象

迭代器:可通过next()方法调用,最后会抛出stopIteration异常的对象

生成器:1.列表生成器:列表解析[]变成()就是生成器表达式 eg:g = (x*x for x in range(10))

         2.函数生成器:带yield

    3.生成器只能用一次

生成器调用方式:__next__(),next(),send()

#send()调用函数生成器例子
def test():
  print(开始啦!!!)
  first = yield 1
  print(第一次,first)
  yield 2
  print(第二次)
 
t = test()
res = t.__next__() #相当于next(t)
print(res)
t.send(None) #将None传递给yield再赋值给first

输出结果如下:
开始啦!!!
1
第一次 None

 

Python基础-11-迭代器/生成器

标签:可迭代对象   end   迭代器   表达式   block   基础   color   二次   first   

原文地址:https://www.cnblogs.com/josie930813/p/9680867.html

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