11.1 インデックスの指定
Pythonでのサブ文字列の抽出は、テキストデータを操作し、文字列から重要な情報を取り出すためによく使われる操作だよ。いくつかのサブ文字列を取得する方法を見てみよう。それぞれに独自の特徴と利用シーンがあるよ。
スライスの使用
スライス (slices) はPythonでサブ文字列を取得する基本的な方法だよ。Pythonでのスライスは、string[start:stop:step] の構文を使って作られるんだ。ここで、:
start— 始まりのインデックス(含む),stop— 終わりのインデックス(含まない),step— 取り出される文字のステップ。
スライスの構文では、取り出したいサブ文字列の開始インデックスと終了インデックスを指定できるよ。
text = "Hello, world!"
substring = text[7:12] # 'world'を出力する
11.2 不完全なインデックスの指定
サブ文字列を取得する時、3つのインデックスを全部指定する必要はないよ。
startが省略されると、スライスは文字列の最初から始まるよ。stopが省略されると、スライスは文字列の最後まで続くよ。stepが省略されると、文字は一つずつ取り出されるよ。
例:
それじゃあ、7番目の文字から文字列の終わりまでサブ文字列を取得する例を書こう。
text = "Hello, world!"
substring = text[7:] # 'world!'を出力する
今度は文字列の最初から10文字目まで。範囲の最後の文字はサブ文字列に含まれないことを覚えているといいね。
text = "Hello, world!"
substring = text[:10] # 'Hello, wor'を出力する
11.3 負のインデックス
Pythonの負のインデックスは、終わりから始めて文字列の要素にアクセスするのを許可するよ。 負のインデックスを使うと、特に文字列の終わりを操作する必要がある時に、コードがより読みやすく便利になることが多いんだ。
文字列の最後の文字を取得する:
text = "Python"
last_char = text[-1]
print(last_char) # 'n'を出力する
文字列の最後から2番目の文字を取得する:
text = "Python"
second_last_char = text[-2]
print(second_last_char) # 'o'を出力する
文字列の最後の3文字を取得する:
text = "Python"
last_three = text[-3:]
print(last_three) # 'hon'を出力する
最後の文字を除いた文字列を取得する:
text = "Python"
all_but_last = text[:-1]
print(all_but_last) # 'Pytho'を出力する
スライスの高度な使用法
step パラメーターを使うことで、例えば文字を逆順に取り出すなど、より複雑なスライスを作ることができるよ:
# 文字列を逆にする
print(text[::-1]) # '!dlrow ,olleH'
GO TO FULL VERSION