2019年5月13日月曜日

Pythonで配列番号付きのリストを表示させる

デバッグでは配列に何が入っているのかを表示させるスクリプトを書くことが多いです。
それをPythonで書いてみようと思って調べていると、なかなか衝撃的なことが出てきました。
Pythonでは ++ や -- みたいなインクリメント・デクリメント演算子が使えないようです。
まぁ、前置・後置とかを考えなくて済むから楽といえば楽なのですが、なかなか衝撃的です。
i += 1 とか i -= 1 は使えるみたいなのでこちらで考えるように思考をかえないといけませんね。



で、ここまでの知識でコードを書くと、

idx = 0
for val in list_:
    print idx, val
    idx += 1

なんか面倒です。
MELだとこんな感じ。

for( $idx = 0; $idx < size($list); $idx++ )
{
    print($idx+" "+$list[$idx]+"\n");
    
}

しかし、いろいろと調べていくとenumerate関数というのがあるらしい。
これを使うとMEL並みにコードを短くできるみたいです。

for idx, val in enumerate(list_):
    print idx, val

みたいな感じでかなり短縮できました。
MELだと型が合っていないとエラーになるので、そういうのを考えなくても関数が実行できるというのは便利だと思います。

この他にも、言語特有のお作法や、知ってて当たり前みたいなセンテンスがまだまだ有りそう。

0 件のコメント:

コメントを投稿