Pythonのenumerate関数でfor文のインデックスを取得


press
Pythonのenumerate関数でfor文のインデックスを取得

Pythonのenumerate関数でfor文のインデックスを取得

enumerate関数を使うとPythonでforを書くときに処理毎にカウントアップしたり、値を代入したりといった処理が簡単にできるので便利です。

実際の開発でよくある最初のループでは処理を飛ばして、2回目以降の処理でインデックスを振っていくプログラムをenumerate関数を使って書きます。

enumerateを使うパターンと使わないパターン、後半のリスト作成ではリスト内包表記を使うパターンと使わないパターンの説明をします。

enumerateを使わない書き方

Pythonのenumerate関数でfor文のインデックスを取得
l = ["a", "b", "c"]
i = 0
for v in l:
    if i > 0:
        i += 1
        print(f"list_{i}")
    else:
        i +=1
        print(f"list")

インデックス用の変数を用意したり、ループ中でカウントアップしたりと細かいコードが増えます。

enumerateを使った書き方

Pythonのenumerate関数でfor文のインデックスを取得
l = ["a", "b", "c"]
for i, v in enumerate(l):
    if i > 0:
        print(f"list_{i}")
    else:
        print(f"list")

enumerateを使うとインデックスを取得するコードを書かなくてよいので、記述量が少なくなりスッキリとしています。

リスト内包表記を使わないリスト作成の書き方

Pythonのenumerate関数でfor文のインデックスを取得
l = ["a", "b", "c"]
some_var = []
for i, v in enumerate(l):
    if i > 0:
        some_var.append(f"list_{i}")
    else:
        some_var.append(f"list")

some_var

格納用の空リストをはじめに用意して処理ごとにアペンドします。

リスト内包表記を使ったリスト作成の書き方

Pythonのenumerate関数でfor文のインデックスを取得
l = ["a", "b", "c"]
some_var = [f"list_{i}" if i > 0 else f"list" for i, v in enumerate(l)]
some_var

リスト内包表記を使うと6行分のコードを1行で書くことができます。


株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    Related Articles

    Python

    仮想環境でかなり困った

    下記のdeep fakeを導入しようとしたら仮想環境作成でかなり困ったので記録しておく。 https://knowledge.sakura.ad.jp/26769/ 試したこと Docker まずdockerでpytho […]

    Posted on by EIGHT
    Python

    Jupyter NotebookでもBlackでコードフォーマット

    Jupyter NotebookでもBlackでコードフォーマット コードの可読性を上げて保守性を高めたり、コードの属人化を防いで生産性を向上させるためのルール(コーディング規約)に則った開発を行うために、ファントムでは […]

    Posted on by press

    最新情報をお届けします!

    メーリングリストに登録するとファントムの最新情報をお届けします

    お客様のメールアドレスを共有することはありません