码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-01-03 17:31:37      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:类型   span   div   nbsp   yield   for   数据   pos   int   

生成器函数的进阶

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各种推导式

标签:类型   span   div   nbsp   yield   for   数据   pos   int   

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

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