我碰巧发现自己有一个基本的过滤需求:我有一个列表,我必须根据项目的属性进行过滤.
我的代码如下所示:
my_list = [x for x in my_list if x.attribute == value]
但后来我想,这样写不是更好吗?
my_list = filter(lambda x: x.attribute == value, my_list)
它更具可读性,如果性能需要,可以取出lambda来获得一些东西.
问题是:在使用第二种方法时有什么注意事项吗?性能有什么不同吗?我错过了Python 的方式吗™ 而且应该以另一种方式(比如使用itemgetter而不是lambda)来完成吗?