首页 > 其他 > 详细

生成器函数的进阶和表达式and各种推导式

时间:2018-01-03 16:51:24      阅读:218      评论:0      收藏:0      [点我收藏+]

生成器函数的进阶

send的效果与作用范围和next一模一

send获取下一个值的效果和next基本一致

第一次不能用send

函数中的最后一个yield不能接收新的值

只是再获取下一个值的时候,给上一个yield的位置传递一个数据

使用send的注意事项

  #第一次使用生成器的时候,是用next获取下一个值

  #最后一个yield不能接收外部的值

def generator():
    print(123)
    content = yield 1
    print(=======,content)
    print(456)
    arg = yield 2
    ‘‘‘‘‘‘
    yield
# g1 = generator()
# g2 = generator()
# g1.__next__()
# g2.__next__()
# print(‘********‘,generator().__next__())
# print(‘********‘,generator().__next__())
g = generator()
ret = g.__next__()
print(***,ret)
ret = g.send(hello)
print(***,ret)

各种推导式

egg_list=[鸡蛋%d%i for i in range(10)]
print(egg_list)
g = (i for i in range(10))
print(g)        #生成器的内存地址
for i in g:
    print(i)

    #与列表生成器的区别:括号不一样,返回的值=======几乎不占内存

各种推导式

  [满足条件的元素相关的操作  for   元素   in     可迭代的数据类型     if    元素相关的条件]

生成器注意

1》生成器中的数据只能取一次,取完就没了。

2》惰性运算。

生成器函数的进阶和表达式and各种推导式

原文:https://www.cnblogs.com/qinghuani/p/8184240.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!