Pythonでシーケンスのインデックスを使って反復処理する方法
Pythonにおけるシーケンス型オブジェクトとは、リスト・タプル・文字列のように、要素が順序をもって並んでいるデータ構造のことです。それぞれの要素には、0から始まるインデックス(添字)を使ってアクセスできます。
この記事では、インデックスを利用してシーケンス内の要素を1つずつ順番に処理する基本的な方法を解説します。
range()とlen()を組み合わせた基本形
シーケンスの反復処理で最もよく使われるのが、len()関数とrange()関数の組み合わせです。len()でシーケンスの長さを取得し、それをrange()に渡すことで、「0 ~ 長さ-1」までの連続した整数が生成されます。これをfor文で回せば、すべてのインデックスにアクセス可能です。
リストの要素を1つずつ取り出す
>>> L1 = [10, 20, 30, 40, 50]
>>> for i in range(len(L1)):
print(L1[i])
10
20
30
40
50変数iには0から4までの整数が順に入り、L1[i]によって対応する位置の要素が取り出されていることがわかります。
文字列を1文字ずつ切り出す
同じ手法は文字列にもそのまま使えます。文字列は「文字のシーケンス」として扱えるため、インデックス指定で1文字ずつ取得できます。
>>> string = 'TutorialsPoint'
>>> for i in range(len(string)):
print(string[i])
T
u
t
o
r
i
a
l
s
P
o
i
n
t補足:enumerate()を使うとさらに便利
インデックスと値を同時に扱いたい場合は、組み込み関数enumerate()を使うとコードがより簡潔で読みやすくなります。
>>> for i, value in enumerate(L1):
print(i, value)
0 10
1 20
2 30
3 40
4 50このように、Pythonではrange(len(シーケンス))によるインデックス反復が基本ですが、状況に応じてenumerate()や直接のfor文(例:for x in L1:)を使い分けると、よりPythonicで効率的なコードが書けます。
-
Pythonで文字列を逆順にする方法|スライスとreversed()の使い方を解説
Pythonでは、文字列スライスやrange演算子を活用することで、文字列を簡単に逆順(反転)にすることができます。この記事では、代表的な2つの方法をわかりやすく解説します。 方法1:スライス記法 [::-1] を使う(推奨・高速) 最もシンプルで一般的なのが、スライス記法を使う方法です。ステップに -1 を指定するだけで、文字列を後ろから前へ一文字ずつ取り出せます。 >>> Hello[::-1] olleH >>> Halloween[::-1] neewollaH スライスの仕組み 角括弧 [] の中には、コロン「:」で区切った3つの値を指定できます
-
Pythonで文字列が英数字のみかどうかを判定する方法【isalnum()と正規表現】
Pythonでは、文字列が英数字(アルファベットと数字)のみで構成されているかどうかを簡単に判定できます。主な方法は2つあります。文字列クラスに組み込まれている isalnum() メソッドを使う方法と、正規表現を使う方法です。 isalnum()メソッドを使う方法 Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、文字列が英数字のみで構成されている場合に True を、記号などが含まれる場合には False を返します。 >>> 123abc.isalnum() True >>>