Python->生成器

#列表生成方式

[x*2 for x in range(10) ]

#生成器(generator object)

#创建生成器两种方法:

(x*2 for x in range(10) ) #第一种创建生成器方法
def gen():   #第二种创建生成器方法

    count  =   yield 1
    print(count)
    yield 2

print(gen())

#生成器的方法:

next(gen())  #计算出一个值

#send ()   方法可以向生成器中的yield前的一个变量传入一个参数,count = yield 1  count接收这个变量。第一次用send方法不能加任何参数,还能加入None。

#send ()   #gen.send(None) = =next(gen())
next(gen())

gen.send("Jay Chou")

#注意:生成器在创建的时候已经决定了能计算出值得个数,也就是决定了生成器中含有的元素个数。

#调用next的次数超过值得个数就会报StopIteration

#遍历所有元素可以使用for 循环

for  i in  [1,2,3]:   #[1,2,3]为可迭代对象,可迭代对象都拥有iter方法与_next_方法

   print i
#for  循环内部三件事:
#1 调用可迭代对象的iter方法返回一个迭代器对象。
#2 调用迭代器对象的next方法
#3 处理StopIterator 异常


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值