栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-列表理解与lambda +过滤器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-列表理解与lambda +过滤器

我发现列表理解比

filter+
清晰得多
lambda
,但请使用任何你更容易理解的列表。

有两件事可能会减慢你对的使用

filter

第一个是函数调用开销:使用Python函数(无论是由def还是创建的

lambda
)后,过滤器的运行速度可能会比列表理解速度慢。几乎可以肯定,这还不够重要,并且在对代码进行定时并发现它是瓶颈之前,你不应该对性能进行太多考虑,但是区别就在那里。

可能适用的其他开销是,

lambda
被强制访问作用域变量
(value)
。这比访问局部变量要慢,并且在
Python 2.x
中,列表推导仅访问局部变量。如果你使用的是
Python 3.x,
则列表推导是在单独的函数中运行的,因此它也将
value
通过闭包进行访问,并且这种区别将不适用。

要考虑的另一个选项是使用生成器而不是列表推导:

def filterbyvalue(seq, value):   for el in seq:       if el.attribute==value: yield el

然后,在你的主要代码(这才是真正的可读性)中,你已经用有希望的有意义的函数名称替换了列表理解和过滤器。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398531.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号