それをPythonで書いてみようと思って調べていると、なかなか衝撃的なことが出てきました。
Pythonでは ++ や -- みたいなインクリメント・デクリメント演算子が使えないようです。
まぁ、前置・後置とかを考えなくて済むから楽といえば楽なのですが、なかなか衝撃的です。
i += 1 とか i -= 1 は使えるみたいなのでこちらで考えるように思考をかえないといけませんね。
で、ここまでの知識でコードを書くと、
1 2 3 4 | idx = 0 for val in list_: print idx, val idx + = 1 |
なんか面倒です。
MELだとこんな感じ。
1 2 3 4 5 | for ( $idx = 0; $idx < size( $list ); $idx ++ ) { print ( $idx + " " + $list [ $idx ]+ "\n" ); } |
しかし、いろいろと調べていくとenumerate関数というのがあるらしい。
これを使うとMEL並みにコードを短くできるみたいです。
1 2 | for idx, val in enumerate (list_): print idx, val |
みたいな感じでかなり短縮できました。
MELだと型が合っていないとエラーになるので、そういうのを考えなくても関数が実行できるというのは便利だと思います。
この他にも、言語特有のお作法や、知ってて当たり前みたいなセンテンスがまだまだ有りそう。
0 件のコメント:
コメントを投稿