如何快速掌握Python yield from语法应用技巧?
- 内容介绍
- 文章标签
- 相关推荐
本文共计602个文字,预计阅读时间需要3分钟。
协程是Python中用于实现并发的一种机制,可能很多人不太了解。因此,我们先从其中的`yield from`开始讲解。
`yield from`用法详解:
`yield from`是Python 3.3才开始出现的语法。由于Python 2中没有这个特性,所以它是一个特有的特性。
`yield from`后面需要跟一个可迭代对象。其作用是将可迭代对象中的元素依次yield出来。
例如:
pythondef my_generator(): yield from [1, 2, 3]
for i in my_generator(): print(i)
输出:
12
3
以上就是`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>
到此这篇关于python中的yield from语法快速学习的文章就介绍到这了,更多相关如何快速掌握python中的yield from语法内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!
本文共计602个文字,预计阅读时间需要3分钟。
协程是Python中用于实现并发的一种机制,可能很多人不太了解。因此,我们先从其中的`yield from`开始讲解。
`yield from`用法详解:
`yield from`是Python 3.3才开始出现的语法。由于Python 2中没有这个特性,所以它是一个特有的特性。
`yield from`后面需要跟一个可迭代对象。其作用是将可迭代对象中的元素依次yield出来。
例如:
pythondef my_generator(): yield from [1, 2, 3]
for i in my_generator(): print(i)
输出:
12
3
以上就是`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>
到此这篇关于python中的yield from语法快速学习的文章就介绍到这了,更多相关如何快速掌握python中的yield from语法内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

