imap 和 ifilter 与生成器推导式
我对无关紧要的技术细节很好奇——两者在 python 的内部表示、性能等方面的差异。
I'm curious about the insignificant technical details -- differences between these two in python's internal representation, performance and stuff like that.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一般来说,不鼓励使用映射和过滤器,但如果您仅通过一个函数进行映射过滤,它们是有用的。但切勿将 map 或 filter 与 lambda 一起使用 考虑一下:
filter 或 map 更好的地方:
看,它们更简单。但是,请考虑这一点:
生成器表达式的一个优点是,您可以混合映射和过滤功能。
对我来说,规则是:
编辑:
忘记了一件重要的事情:
在 3 之前的 Python 版本上,map(和过滤器)是渴望的,所以最好将它与列表推导式进行比较。但在 Python 3 上,map 是惰性的,它的作用就像生成器表达式。
Generally, using map and filter is discouraged, but you are mapping-filtering by just one function, they are useful. But never use map or filter with lambda Consider this:
Places where filter or map is better:
See, they are simplier. But, consider this:
And one advantage for generator expressions, you can mix map and filter functionality.
For me the rules are:
Edit:
Forgot one important thing:
On Python versions older than 3, map(and filter) is eager, so it's better compare it with list comprehensions. But on Python 3, map is lazy, it acts like generator expressions.