您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python列表理解与生成器

Python列表理解与生成器

在简单的情况下,如果没有理解/生成器,这样做最快的方法是:

sum(xrange(9999999))

通常,如果需要执行某种操作,需要在理解和生成器表达式之间进行选择,则可以执行以下操作:

sum(a*b for a, b in zip(c, d))

就我个人而言,我认为生成器表达式(没有多余的括号1) 看起来 更好,并且由于可读性很重要-这超过了两个表达式之间的任何微性能差异。

生成器通常会因为这种情况而变得更快,因为它们避免创建中间列表(以及与之关联的内存分配)。随着内存分配和列表调整大小需要花费更多时间来处理更大的列表,随着列表变大,时序差异可能会更加明显。但是,情况并非总是如此(有很好的记录,str.joincpython中str.join生成器相比,使用List进行列表处理的速度更快,因为当获取生成器时,无论如何它都会构造列表…)。

1每当将生成器表达式作为唯一参数传递给函数时,都可以省略括号-这比您预期的发生得更多…

python 2022/1/1 18:50:11 有357人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶