如何快速掌握python中的yield from语法?
2023-03-20 14:46:46 时间
协程是什么?可能很多人不清楚,所以我们先从其中的yield from开始讲解。
yield from
用法详解:
yield from
是在Python3.3才出现的语法。所以这个特性在Python2中是没有的。
yield from
后面需要加的是可迭代对象,它可以是普通的可迭代对象,也可以是迭代器,甚至是生成器。
简单应用:拼接可迭代对象
我们可以用一个使用yield
和一个使用yield from
的例子来对比看下。
使用yield
<p style="line-height: 1.75em"><span style="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-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>
以上就是python中yield from语法的详解。更多Python学习推荐:PyThon学习网教学中心。
相关文章
- Python中的函数与方法 以及Bound Method和Unbound Method
- 一文贯通python文件读取
- Python 中的异步编程:Asyncio
- 7个你现在就该学习Python的理由
- 提高Python运行效率的六个窍门
- Python数据科学:神经网络
- 一篇文章看懂大数据分析就业前景及职能定位
- R和Python中的文本挖掘:8个入门小贴士
- 告诉你为什么Python有点慢,但我却无所谓?
- 专注学习DevOps编程语言Top 5推荐
- Python发送邮件脚本
- Python多进程并行编程实践: mpi4py 的使用
- Python语言在未来的发展前景
- Python vs Ruby: 谁是最好的 web 开发语言?
- Python对Ruby:谁在Web开发领域更胜一筹?
- Python一行代码完成并行任务
- Python开发者2017应该关注的七个类库
- python爬虫入门基本知识
- 在终端中优雅地编写Python
- Python机器学习实战:信用卡欺诈检测