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

    pipenv shellをしてもactivateできない

    pipenv shellをしてもactivateできない pipenvで作った仮想環境に出たり入ったりを繰り返していると、pipenv shellをしても以下のようにShell for UNKNOWN_VIRTUAL_E […]

    Posted on by press
    Python

    BERT+UMAPを実装した

    https://shuhoyo.hatenablog.com/entry/nogizaka46-lyrics-nlp 上記サイトを参考にBERT+UMAPを実装してみた。 BERTとは BERTとは自然言語処理の1手法の […]

    Posted on by EIGHT

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

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

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