【初心者向け】Pythonでリストを反復処理する5つの方法を徹底解説
本記事では、Python 3.x(およびそれ以前のバージョン)におけるリストの反復処理(イテレーション・走査)の方法について解説します。
リストとは、要素が順序付けて並んだシーケンス型のデータ構造です。単一の値を扱うスカラー型ではなく複合的なデータ構造であり、後から内容を変更できる「ミュータブル(可変)」という性質を持っています。また、同じデータ型の要素のみを格納する配列とは異なり、リストは文字列や数値など異なるデータ型の要素を混在させて格納できる点が大きな特徴です。
方法1:インデックスを使わずに直接反復処理する
最もシンプルでPythonらしい書き方は、リストをそのままfor文に渡す方法です。インデックスを意識することなく、各要素へ直接アクセスできます。
コード例
list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']
# リストを反復処理する
for value in list_inp:
print(value, end='')
方法2:インデックスを使った一般的な反復処理
range()関数とlen()関数を組み合わせ、インデックス経由で要素にアクセスする伝統的な方法です。要素の位置(番号)情報が必要な場合に特に便利です。
コード例
list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']
# リストを反復処理する
for value in range(0, len(list_inp)):
print(list_inp[value], end='')
方法3:enumerate()を使った反復処理
組み込み関数enumerate()を利用すると、インデックスと要素を同時に取り出しながらループ処理ができます。「何番目の要素か」という情報も必要とする場面で、方法2よりも簡潔に記述できるのが魅力です。
コード例
list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']
# リストを反復処理する
for value, char in enumerate(list_inp):
print(char, end='')
方法4:負のインデックスを使った反復処理
Pythonでは負のインデックスがサポートされており、「-1」が末尾の要素、「-len(リスト)」が先頭の要素を指します。この仕様を活用した反復処理の例です。
コード例
list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']
# リストを反復処理する
for value in range(-len(list_inp), 0):
print(list_inp[value], end='')
上記の4つの方法は、いずれも以下と同じ出力結果になります。
出力結果
tutorialspoint
方法5:スライスしたリストを使った反復処理
スライス(範囲指定)を活用すれば、リストの一部を切り出しながら反復処理を行うことも可能です。以下の例では、1要素ずつの部分リストを順番に取り出しています。
コード例
list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']
# リストを反復処理する
for value in range(1, len(list_inp)):
print(list_inp[value-1:value], end='')
print(list_inp[-1:])
出力結果
['t']['u']['t']['o']['r']['i']['a']['l']['s']['p']['o']['i']['n']['t']
まとめ
本記事では、リスト型データの反復処理(走査)について学びました。インデックスを使わない直接的な方法をはじめ、range()やenumerate()を活用する方法、負のインデックスやスライスを使った応用的な手法まで、さまざまな実装テクニックを紹介しました。それぞれの特徴を理解し、用途に応じて最適な方法を選ぶことで、読みやすく効率的なPythonコードを書けるようになります。
-
Pythonで辞書(dict)を反復処理する4つの基本方法
この記事では、Python 3.x(およびそれ以前のバージョン)における辞書(dict)の反復処理・走査の方法について解説します。 辞書とは、キーと値のペアから構成されるデータ構造です。インデックスには任意のイミュータブル(変更不可能)な型を使用でき、これらは「キー」と呼ばれます。辞書は波括弧 {} の中に定義します。 なお、本記事のサンプルコードでは、意図的に重複したキーを含む辞書を使用しています。Pythonでは辞書のキーは一意である必要があるため、同じキーが複数回定義された場合は、後から定義された値が前の値を上書きします。そのため、実際に保持されるのは「t:o」「r:i」「a:l」「s
-
Pythonでリストを反復処理する方法とは?for文・range・enumerateの使い方を解説
Pythonでリストを反復処理する基本:for文 リストオブジェクトを反復処理(イテレーション)する方法はいくつかあります。最も基本的なのは for 文を使う方法です。Pythonの for 文には、リストの要素を先頭から末尾まで順番にたどり尽くすまで繰り返す形式があり、Javaの foreach 文に相当します。 書式は次のとおりです。 for var in list: stmt1 stmt2 例1:for文でリストの全要素を出力する 次のスクリプトは、リスト内のすべての要素を出力します。index() メソッドを組み合わせることで、インデックス番号も同時に表示できます。 L