列表理解与lambda+过滤器我碰巧发现自己有一个基本的过滤需求:我有一个列表,我必须通过条目的一个属性来过滤它。我的代码看起来如下:my_list = [x for x in my_list if x.attribute == value]但后来我想,这样写不是更好吗?my_list = filter(lambda x: x.attribute == value, my_list)它更具可读性,如果性能需要,可以取出lambda以获得一些信息。问题是:使用第二种方式是否有任何警告?表现有什么不同吗?我是否完全忽略了PythonicWay™,并且应该以另一种方式来实现它(例如使用itemgetter而不是lambda)?
3 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
filter
+lambda
list
filter
.
def
lambda
value
value
def filterbyvalue(seq, value): for el in seq: if el.attribute==value: yield el
添加回答
举报
0/150
提交
取消