Python 生成器。什么时候使用?

Python 生成器。什么时候使用?

Python 生成器是一个非常强大的工具,可以帮助您优化代码。

但有时它的影响是无用的。让我们看一些示例,以了解在哪些情况下使用它们更好……

你有任何你想经历的序列

在这里不要尝试将您的列表转换为具有理解的生成器。你已经有了 许多名字 在你的记忆中,所以如果你创建一个额外的变量,你只会为它花费一个额外的地方

Python 生成器是一个非常强大的工具,可以帮助您优化代码。

但有时它的影响是无用的。让我们看一些示例,以了解在哪些情况下使用它们更好……

你有任何你想经历的序列

在这里不要尝试将您的列表转换为具有理解的生成器。你已经有了 许多名字 在你的记忆中,所以如果你创建一个额外的变量,你只会为它花费一个额外的地方

您必须经过过滤的序列

假设你也有一个 许多名字 里面有重复的列表。因此,您要排除重复但保存源列表的顺序。

文件打开

当然,您可以使用以下功能读取文件。实际上,它会起作用,但尝试对 100.000 行的文件做同样的事情。我希望你有这么多内存。

使用生成器

生成随机 uniq 值

您需要检查一批具有相同占位符的有序网址

可以说,您有一个网站 my-blog.com/posts。

所有帖子 url 都匹配 my-blog.com/posts/{N} 模式,其中 N — 特定帖子的编号

您需要浏览前 10.000 个帖子

如果您创建一个带有 URL 的列表,那么您的内存中有一个相当大的对象。在使用生成器的情况下,您不记得之前创建 URL 的上下文,因此每次迭代只创建一个 URL。这意味着您不受记忆的限制。

使用生成器作为协程。先进的

PEP 342 - 通过增强生成器的协程

让我们看一下更高级的生成器用法。除了返回值,我们还可以将值发送到生成器。更常见的用法是异步/等待,但无论如何,让我们看一下计算发送给它的数字平均值的函数示例。

实际上,您可以使用自定义协程装饰器使其更容易一些,以免每次都调用 next() 进行初始化

结论

请关注我,你会帮助我很多。

谢谢阅读。如果您觉得这篇文章有用,请不要忘记鼓掌并与您的朋友和同事分享。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/36272/28241410

posted @ 2022-09-14 10:29  哈哈哈来了啊啊啊  阅读(29)  评论(0编辑  收藏  举报