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

    Django

    40分でUbuntu Nginx PostgreSQL Django Gunicornの環境構築

    40分でUbuntu Nginx PostgreSQL Django Gunicornの環境構築 VPSへのログイン(新規タブ) OSの初期設定(アップデート、アップグレード) 新規ユーザーを追加 新しく追加したユーザー […]

    Posted on by press
    Python

    複数の画像からgifアニメーションを作る

    複数の画像からgifアニメーションを作る 定点撮影などで連番になっている複数の画像をまとめてgifアニメーションに変換する方法です。 コードはGitHubリポジトリにあげています。 コード 結果 解説 import gl […]

    Posted on by press

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

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

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