美文网首页
列表解析和 for 循环的比较

列表解析和 for 循环的比较

作者: DeamoV | 来源:发表于2018-10-07 12:03 被阅读14次

    前言

    喜欢的话,欢迎来我的个人博客来玩呀,博客地址。如果有实习机会的话,欢迎联系我,

    分析

    首先先放上,Stackflow 的高票答案的结论

    A list comprehension is usually a tiny bit faster than the precisely equivalent for loop (that actually builds a list), most likely because it doesn't have to look up the list and its append method on every iteration. However, a list comprehension still does a bytecode-level loop.

    显然,列表推导比 for 循环稍快

    答者的分析为列表解析没有创造一个列表的实体,所以它的稍微的性能提升来源于不需要在每次迭代中查找列表,和使用它的 append 函数。

    其他理解

    正如文中说,这种优化方案是没有意义的,因为你话费同样的经历去优化你的 python 代码,不如重构成 C 的代码来优化,这样子前者的效率提高只是 15% 左右,而后者会得到 300% 的提高,这是数量级的优化。

    参考文章

    Stackflow的提问: Are list-comprehensions and functional functions faster than “for loops”?

    相关文章

      网友评论

          本文标题:列表解析和 for 循环的比较

          本文链接:https://www.haomeiwen.com/subject/kzhlaftx.html