列表理解与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)?