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は文字列の要素数を越えるためインデックスエラーとなります。