たまたま、基本的なフィルタリングの必要性があることに気づきました。リストがあり、アイテムの属性でフィルタリングする必要があります。
私のコードは次のようになりました:
my_list = [x for x in my_list if x.attribute == value]でも、こんなふうに書いた方がいいのではないかと思いました。
my_list = filter(lambda x: x.attribute == value, my_list)より読みやすく、パフォーマンスに必要な場合はラムダを取り出して何かを取得できます。
質問です:2番目の方法を使用する際に注意点はありますか?パフォーマンスの違いはありますか?Pythonic Way™がまったくないので、さらに別の方法で実行する必要がありますか(ラムダの代わりにitemgetterを使用するなど)?
filterリストではなくフィルタージェネレーターオブジェクトが返されることに注意してください。
                
filterもっと読みやすいと思う人はもっと多いと思います。listcompでそのまま使用できる単純な式があるが、に渡すためにラムダでラップする必要がある場合(または、同様にから、partialまたはoperator関数などで構成する必要がある場合)はfilter、listcompsが勝つときです。