14
列表理解与lambda +过滤器
我碰巧发现自己有一个基本的过滤需求:我有一个列表,并且必须按项目的属性对其进行过滤。 我的代码如下所示: my_list = [x for x in my_list if x.attribute == value] 但是后来我想,这样写会更好吗? my_list = filter(lambda x: x.attribute == value, my_list) 它更具可读性,并且如果需要性能,可以将lambda取出以获取收益。 问题是:使用第二种方法是否有警告?有任何性能差异吗?我是否完全想念Pythonic Way™,应该以另一种方式来做到这一点(例如,使用itemgetter而不是lambda)吗?