pythonでのループ ~for文の使い方3種~

2020 1/03
pythonでのループ ~for文の使い方3種~

機械学習などで現在流行っているpythonですが、そのfor文(ループ)の使い方を3種紹介します。

今回紹介するのは、基本形、複数変数ループ(zip)、インデックス同時取得(enumerate)です。

目次

基本形: for文

まずは基本形

リストaの中身が、for文でa_contに代入されて、printされます。

numpyの配列でも同じです。

全く同じようになります。

途中でループを抜ける方法: break文

途中でループを抜けるときはbreak文を使えば抜けられる。

a_contが「20」になった時に、if文で条件が適合して、break文によってループの外に出たのがわかります。

ループが最後まで回った場合: else文

ここで面白い機能を紹介します。else文です。

早速、例えを。

上記のコードの場合には、for文によるループが最後まで行き、else文内に入りprint文が実行されて終了します。

これの何が良いかというと、ループ内のbreak文によって抜けた場合にはelse文配下が実行されず、最後までループを回った場合にはelse文配下が実行されます

これを古典言語、例えばfortranで実現するには、ループの最後まで行った時にフラグを立てて、それをロープ文後で検知して、実行することになります。面倒。

複数変数ループ: zip文

次に複数のリストを同時にループさせるやり方です。

インデックスをループさせるのではなく、zip文を使います。

このようにして、2つのリストa, bを同時に回すことができます。

各要素を使った演算などができます。

もちろん2つに限らず、3つでも、4つでもできますし、numpy配列でもできます。

ちなみにもしも要素の数が異なった時には、一番要素数の小さい配列に合わせてfor文が終了します。

インデックス(index)同時取得: enumerate文

最後にenumerate文を紹介します。

これは、リスト(配列)の中身(値)とともに、そのインデックスも取得するコマンドになります。

このenumerate文を使用すると、2つ情報が取得されます。

第一にインデックスが取得されて、上記の場合にはiに代入されます。

第二に要素値が取得されて、上記の場合にはa_contに代入されます。

これでインデックスも同時に取得ができます。

関連記事

応援よろしくお願いします☆

コメント

コメントする

目次