コンテンツにスキップ

文字列のインデックス指定の使い方と修正方法

[

文字列のインデックス指定(String Indexing)

Pythonでは、文字列のインデックスを指定して、文字列内の個々の文字に直接アクセスすることができます。文字列のインデックスは0から始まります。つまり、文字列の最初の文字はインデックス0、次の文字は1、以後順に増えていきます。このレッスンでは、文字列のインデックス指定の構文と、いくつかの例を使って練習してみましょう。

インデックス指定

Pythonのインタラクティブシェルで以下のコードを実行してみましょう。

s = 'mybacon'
print(s[0]) # 'm' を出力
print(s[1]) # 'y' を出力
print(s[6]) # 'n' を出力
print(s[len(s) - 1]) # 'n' を出力

このコードでは、文字列sに対してインデックスを指定して個々の文字にアクセスしています。s[0]'m'を意味し、s[1]'y'を、s[6]'n'を、s[len(s) - 1]'n'を取得しています。

ただし、s[7]のように文字列の範囲外のインデックスを指定すると、エラーが発生します。具体的には、IndexError: string index out of rangeというエラーメッセージが表示されます。

負のインデックス

以下のコードを実行してみましょう。

s = 'mybacon'
print(s[-1]) # 'n' を出力
print(s[-4]) # 'a' を出力
print(s[-len(s)]) # 'm' を出力
print(s[-7]) # 'm' を出力

このコードでは、s[-1]は文字列の末尾の文字'n'を、s[-4]は文字列内の4番目の文字'a'を、s[-len(s)]は文字列の先頭の文字'm'を、s[-7]は先頭の文字'm'を取得しています。

ただし、インデックスの範囲外を指定するとエラーが発生します。空の文字列tを定義し、t[0]を実行すると、IndexError: string index out of rangeというエラーメッセージが表示されます。

結論

文字列のインデックスは、0から始まります。このインデックスを利用して、文字列内の文字にアクセスすることができます。また、インデックスは負の数を指定することもできます。負のインデックスは文字列の末尾から逆に数えた位置を表し、正のインデックスと同様に使用することができます。

次のレッスンでは、文字列スライシングというテクニックについて学びます。