簡単なfilter

pythonにはfilter関数がある.
filterは,
filter(関数,シーケンス)
と行った形で使える.
例えば,attrという属性をもったオブジェクトのリストがあるとする.
attrの値がkindのものだけを取り出して新しいリストを作る場合,次のような関数を作っておくと便利.

def ListFilter(kind,list):
  return filter((lambda l:l.attr==kind),list)

forで回して,チェックしながら新しいリストを作ることもできるが,この方がすっきりかける.


lambda式は,関数の中で使う分に可読性を損なうことなくきれいに書けるのでおすすめ.
python2.5で使えたからgoogle app engineでも使えるだろう.
至ることろで不必要に使いまくるとソースが汚くなる気がするので,使いどころを押さえて使うといい気がする.