ループ処理に使われるfor文で、リストやタプルからインデックスと要素を取り出したいときに使う構文を紹介します。
この記事ではリストを例にコードを紹介していますが、タプルに置き換えても同じことができます。
for文の基本的な使い方はコチラをご覧ください。
Pythonのループ処理に使われる構文にはfor文とwhile文があります。今回はそのfor文の使い方解説をしていきます。 for文とは for文はループ処理を行う構文です。Pythonで書く場合はコロン(:)とインデントに注[…]
要素だけ取り出す
1 2 3 4 5 6 7 |
>>> for i in ['a', 'b', 'c']: print(i) #出力結果 a b c |
変数を一つだけ設定してあげるリストの要素を取り出すことができます。もっとも基本的なfor文とリストの使い方です。
インデックスだけ取り出す
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#リストの場合 >>> X = ['a', 'b', 'c'] >>> for i in range(len(X)): print(i) #出力結果 0 1 2 #タプルの場合 >>> X = ('a', 'b', 'c') >>> for i in range(len(X)): print(i) #出力結果 0 1 2 |
range関数とlen関数を使うとリストのインデックスだけを取得できます。
インデックスと要素を取り出す
- enumarate関数を使う
- rangeとlen関数を使う
enumerate関数を使う方法
enumerate関数の引数にリストを渡すとインデックスと要素を取得できます。リストを例に書いていますがタプルでも同じことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#リストの場合 >>> X = ['a', 'b', 'c'] >>> for i in enumerate(X): print(i) #出力結果 (0, 'a') (1, 'b') (2, 'c') #タプルの場合 >>> X = ('a', 'b', 'c') >>> for i in enumerate(X): print(i) #出力結果 (0, 'a') (1, 'b') (2, 'c') |
for文の辺薄を一つだけ設定するとリストと要素をタプルに格納して出力されます。また、以下のように2変数で格納することもできます。
1 2 3 4 5 6 7 8 |
>>> X = ['a', 'b', 'c'] >>> for i, j in enumerate(X): print(i, j) #出力結果 0 a 1 b 2 c |
出力結果を見ても分かりますが、変数iとjにそれぞれリストのインデックスと要素が代入されていることが分かります。
rangeとlen関数を使う方法
enumerate関数を使わなくてもリストからインデックスと要素を取り出すことはできますが少々煩雑です。
1 2 3 4 5 6 7 8 9 |
>>> X = ['a', 'b', 'c'] >>> for i in range(len(X)): j = X[i] print(i, j) #出力結果 0 a 1 b 2 c |
この程度なら許容範囲でしょうか?個人の好みによるかもしれませんが、プログラムを書くなら1行でも少ないほうがいいと思います。
len関数に関しては以下の記事をご覧ください。
ループ処理に使われるfor文とよくセットで使われるrangeの使い方を紹介していきます。 for文の書き方とrangeの挙動を知っていれば、 その組み合わせでいろいろなループ処理を作ることができます。 もし、for文とr[…]
まとめ
今回はリストから要素とインデックスを取り出す方法を見ていきました。関数をす替えば簡単に取り出すことができます。
変数の数によってタプルで出力されたり個別に出力されたりと違いがあるので注意してコードを書いていきましょう。
- ループ処理とは?for文とwhile文の解説
- while文を使う方法【インクリメントと無限ループ対処法】
- for文の使い方解説(一行・range関数・リスト)
- for文を一行で書く方法と複数行との違い
- for文でrange関数とlen関数を使う方法
- for文でリストのインデックスと要素を取り出す(enumerate)
- for文で辞書のキー・バリューを取り出す方法(enumerate・items・keys・values)
- 条件分岐とは?if文・else・elifの書き方
- for文やif文でpass・break・continueを使う方法
- while文のbreak・else・continue使い方まとめ
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]