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

    iPhoneで撮影した写真をPythonでpngに変換

    iPhoneで撮影した写真をPythonでpngに変換 iPhoneで撮影した写真はHEICという拡張子で保存されます。この画像を利用したり編集したりするにはpngなどの形式に変換が必要なので画像が大量にある場合は1枚1 […]

    Posted on by press
    Python

    Pythonでファイル・ディレクトリを削除する

    Pythonでファイル・ディレクトリを削除する 日付形式のディレクトリを管理していると古いデータを定期的に整理する必要が出てきます。特に画像ファイルなどの日々大量に生成されるデータを扱うシステムでは、ストレージの圧迫を防 […]

    Posted on by press