python中的yield from语法快速学习

协程是什么?可能很多人不清楚,所以我们先从其中的yield from开始讲解。

yield from 用法详解:

yield from 是在Python3.3才出现的语法。所以这个特性在Python2中是没有的。

yield from 后面需要加的是可迭代对象,它可以是普通的可迭代对象,也可以是迭代器,甚至是生成器。

简单应用:拼接可迭代对象
我们可以用一个使用yield和一个使用yield from的例子来对比看下。

使用yield

<p style=\"line-height: 1.75em;\"><span style=\"font-family: 微软雅黑, \"Microsoft YaHei\"; font-size: 14px;\"># 字符串<br>astr=\'ABC\'<br># 列表<br>alist=[1,2,3]<br># 字典<br>adict={\"name\":\"wangbm\",\"age\":18}<br># 生成器<br>agen=(i for i in range(4,8))<br><br>def gen(*args, **kw):<br>  for item in args:<br>    for i in item:<br>      yield i<br><br>new_list=gen(astr, alist, adict, agen)<br>print(list(new_list))<br># [\'A\', \'B\', \'C\', 1, 2, 3, \'name\', \'age\', 4, 5, 6, 7]<br></span></p>

使用yield from

<p style=\"line-height: 1.75em;\"><span style=\"font-family: 微软雅黑, \"Microsoft YaHei\"; font-size: 14px;\"># 字符串<br>astr=\'ABC\'<br># 列表<br>alist=[1,2,3]<br># 字典<br>adict={\"name\":\"wangbm\",\"age\":18}<br># 生成器<br>agen=(i for i in range(4,8))<br><br>def gen(*args, **kw):<br>  for item in args:<br>    yield from item<br><br>new_list=gen(astr, alist, adict, agen)<br>print(list(new_list))<br># [\'A\', \'B\', \'C\', 1, 2, 3, \'name\', \'age\', 4, 5, 6, 7]<br></span></p>
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容