Python の文字列はリストのように一文字ずつ取得できる

文字列はリストのように一文字ずつ取得できます。

a = 'hello'

print(a[0]) # h
print(a[1]) # a

a[0] は hello の一文字目を表し、a[1] は hello の二文字目を表します。

文字列の長さを超えたとき

hello は 5 文字であり、0 から 4 までの文字しか取得できません。

a = 'hello'

print(a[4])
print(a[5])

出力:

o
Traceback (most recent call last):
  File "string_2.py", line 3, in <module>
    print(a[5])
IndexError: string index out of range

結果を見てわかるように a[4] の o は出力されていますが、a[5] はインデックスエラーが出ています。

マイナスのインデックス

マイナスのインデックスは、リストと同じように後ろの値を順に取得します。

a = 'hello'

print(a[-1])
print(a[-2])
print(a[-3])
print(a[-4])
print(a[-5])
print(a[-6])

出力:

o
l
l
e
h
Traceback (most recent call last):
  File "string_2.py", line 7, in <module>
    print(a[-6])
IndexError: string index out of range

-1 は最後の文字、つまり o を表します。それから順番に -2 は l、-3 は l、-4 は e、-5 は h を表し、-6は文字列の要素数を越えるためインデックスエラーとなります。