Python 生成器。什么时候使用?
Python 生成器。什么时候使用?
Python 生成器是一个非常强大的工具,可以帮助您优化代码。
但有时它的影响是无用的。让我们看一些示例,以了解在哪些情况下使用它们更好……
你有任何你想经历的序列
在这里不要尝试将您的列表转换为具有理解的生成器。你已经有了 许多名字
在你的记忆中,所以如果你创建一个额外的变量,你只会为它花费一个额外的地方
Python 生成器是一个非常强大的工具,可以帮助您优化代码。
但有时它的影响是无用的。让我们看一些示例,以了解在哪些情况下使用它们更好……
你有任何你想经历的序列
在这里不要尝试将您的列表转换为具有理解的生成器。你已经有了 许多名字
在你的记忆中,所以如果你创建一个额外的变量,你只会为它花费一个额外的地方
您必须经过过滤的序列
假设你也有一个 许多名字
里面有重复的列表。因此,您要排除重复但保存源列表的顺序。
文件打开
当然,您可以使用以下功能读取文件。实际上,它会起作用,但尝试对 100.000 行的文件做同样的事情。我希望你有这么多内存。
使用生成器
生成随机 uniq 值
您需要检查一批具有相同占位符的有序网址
可以说,您有一个网站 my-blog.com/posts。
所有帖子 url 都匹配 my-blog.com/posts/{N} 模式,其中 N — 特定帖子的编号
您需要浏览前 10.000 个帖子
如果您创建一个带有 URL 的列表,那么您的内存中有一个相当大的对象。在使用生成器的情况下,您不记得之前创建 URL 的上下文,因此每次迭代只创建一个 URL。这意味着您不受记忆的限制。
使用生成器作为协程。先进的
让我们看一下更高级的生成器用法。除了返回值,我们还可以将值发送到生成器。更常见的用法是异步/等待,但无论如何,让我们看一下计算发送给它的数字平均值的函数示例。
实际上,您可以使用自定义协程装饰器使其更容易一些,以免每次都调用 next() 进行初始化
结论
请关注我,你会帮助我很多。
谢谢阅读。如果您觉得这篇文章有用,请不要忘记鼓掌并与您的朋友和同事分享。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明