盘点一道Python中的yield生成器的题目

简介: 盘点一道Python中的yield生成器的题目

大家好,我是皮皮。


一、前言


前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个Python生成器的问题,这里拿出来给大家分享下,一起学习下。

d504a05c6a8dfaac8f2f88cce9fdd349.png


二、解决过程


这里【月神】给出了解答,如下图所示:

3e6265cfd65babe66b40137492d7e232.png

当然了,这块有点难理解的部分,如下图所示:

4b0981c6722982a8cdc4bfa76fbedd4f.png

如果加return的话,效果就不一样了。

698fa3ee844911270ed96bbb32369b4d.png

这里在额外细节化一下,【瑜亮老师】给出了yield用法细节。

0cca68f72345230350e874b342d726ca.png

a942dd6a3c065c7fd3abade48fff9fbf.png

这个题目主要就考察yield返回结果时,“暂停”函数,再次调用后继续执行yield后面的代码。

这里给出一份代码,理解起来更加容易一些:

def even_odd(x):
    for j in x:
        if j % 2 == 0:
            yield 'Even' + str(j)
        yield 'Odd' + str(j)
num = [0, 1, 2, 3, 4, 5]
for i in even_odd(num):
    print(i, end=" ")

这个输出的结果是:Even0 Odd0 Odd1 Even2 Odd2 Odd3 Even4 Odd4 Odd5

6834b4a7ba50af6915dc0f48aa6f6f7a.png

最后,总结下生成器的用法和特点,

6d57f4b5d1d595f31acc47d227039409.png

b2d6f55af4859c9c5870ba522aba16ba.png


三、总结


大家好,我是皮皮。这篇文章主要分享了Python生成器的用法问题,针对该问题给出了具体的解析和代码演示,帮助粉丝顺利解决了问题,还额外做了一些知识拓展,学到很多东西。


最后感谢粉丝【Chloe】提问,感谢【月神】、【瑜亮老师】给出的具体解析和代码演示,感谢【dcpeng】、【PI】、【老松鼠】、【冫马讠成】等人参与学习交流。


小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。


相关文章
|
2月前
|
存储 索引 Python
|
2月前
|
Python
Python生成器、装饰器、异常
【10月更文挑战第15天】
|
2月前
|
传感器 大数据 数据处理
深入理解Python中的生成器:用法及应用场景
【10月更文挑战第7天】深入理解Python中的生成器:用法及应用场景
51 1
|
2月前
|
存储 数据处理 Python
深入解析Python中的生成器:效率与性能的双重提升
生成器不仅是Python中的一个高级特性,它们是构建高效、内存友好型应用程序的基石。本文将深入探讨生成器的内部机制,揭示它们如何通过惰性计算和迭代器协议提高数据处理的效率。
|
27天前
|
存储 程序员 数据处理
深入理解Python中的生成器与迭代器###
本文将探讨Python中生成器与迭代器的核心概念,通过对比分析二者的异同,结合具体代码示例,揭示它们在提高程序效率、优化内存使用方面的独特优势。生成器作为迭代器的一种特殊形式,其惰性求值的特性使其在处理大数据流时表现尤为出色。掌握生成器与迭代器的灵活运用,对于提升Python编程技能及解决复杂问题具有重要意义。 ###
|
2月前
|
存储 大数据 数据处理
Python 中的列表推导式与生成器:特性、用途与区别
Python 中的列表推导式与生成器:特性、用途与区别
27 2
|
2月前
|
存储 大数据 Python
Python 中的列表推导式和生成器
Python 中的列表推导式和生成器
21 1
|
3月前
|
机器学习/深度学习 设计模式 大数据
30天拿下Python之迭代器和生成器
30天拿下Python之迭代器和生成器
20 3
|
2月前
|
存储 大数据 数据处理
理解Python中的生成器:高效迭代的秘密
【10月更文挑战第8天】理解Python中的生成器:高效迭代的秘密
39 0
|
2月前
|
存储 大数据 程序员
深入理解Python中的生成器
【10月更文挑战第8天】深入理解Python中的生成器
17 0