Python開発効率高杉

最近仕事でPythonを使い始めたが、Cと比べて開発効率が良すぎる。
もちろんPerlRubyでも同様のやり方だと思うが、特にmap()関数が気に入っている。例えば、あるオブジェクトのリスト(objs)から、属性(val)のリストを取り出すには以下のようにする。


vals = map(lambda obj: obj.val, objs)

めちゃくちゃ楽である。


実際使い出すと色々なことに疑問を持つようになる。例えば、ある関数の引数に渡す変数の型は、外側と内側のどちらで規定すべきかとか、関数のoutputは、引数で戻すべきか、それとも返値で戻すべきかとか。
少しずつ理解していくしかない。


追記:

上記の使い方だけであれば、リスト内包表記の方が楽だったかもしれない。


vals = [obj.val for obj in objs]

Pythonはシーケンスに対する操作(スライシングやイテレータなど)が充実しているイメージがあるので、他にもありそうであるが、ここら辺は色々研究したい。