Pythonの文字列の一部を抽出する方法!スライスの使い方を解説します!
生徒
「Pythonで文字列の一部だけを取り出すことってできますか?」
先生
「はい、できますよ。Pythonではスライス(slice)
という方法を使って、文字列の一部を簡単に取り出すことができます。」
生徒
「スライスって何ですか?なんだか料理みたいですね…」
先生
「その通り、まるでケーキを切るように、文字列を好きな部分だけ切り出すようなイメージなんですよ。それでは詳しく見ていきましょう。」
1. Pythonのスライスとは?文字列の一部を切り出す方法
Pythonのスライスは、文字列の一部分だけを取り出すための書き方です。たとえば「こんにちは」という文字列から「こんに」だけ取り出すことができます。
スライスでは角かっこ []
の中に 開始位置:終了位置
を書いて使います。
2. スライスの基本的な書き方
スライスの基本は文字列[開始:終了]
という形です。開始の位置は含まれますが、終了の位置は含まれないという点がポイントです。
text = "こんにちは"
print(text[0:2])
こん
この例では、0文字目から2文字目の手前まで、つまり0と1の文字「こ」「ん」が取り出されます。
3. 文字の位置(インデックス)とは?
Pythonでは、文字列の1文字1文字に「番号(インデックス)」がついています。番号は0から始まります。
- 0番目:こ
- 1番目:ん
- 2番目:に
- 3番目:ち
- 4番目:は
このように、文字に番号がふられていて、その番号を使ってスライスで取り出すことができます。
4. 開始や終了を省略したスライス
開始や終了のどちらかを省略することもできます。
たとえば、最初から3文字目の手前までを取り出すには、こう書きます。
text = "こんにちは"
print(text[:3])
こんにち
逆に、3文字目以降をすべて取り出すには、開始位置だけを指定します。
print(text[3:])
ちは
5. マイナスのインデックスを使う方法
インデックスにはマイナスの数字も使えます。これは後ろから数える方法です。
- -1:最後の文字
- -2:最後から2番目
text = "こんにちは"
print(text[-2:])
ちは
このように、後ろから特定の範囲を取り出すことも簡単にできます。
6. ステップ(間隔)を指定する
スライスには3つ目の数字を使って、文字を何文字おきに取り出すかを指定できます。
text = "こんにちは"
print(text[::2])
こには
[::2]
は「0から最後まで、2文字おきに取り出す」という意味です。
7. スライスを使った例:名前の一部を取り出す
たとえば、フルネームから名字や名前だけを取り出したいときにスライスは便利です。
name = "田中太郎"
last_name = name[0:2]
first_name = name[2:]
print("名字:" + last_name)
print("名前:" + first_name)
名字:田中
名前:太郎
このように、文字列を分けて表示することも簡単にできます。
8. スライスとエラーにならないやさしい仕組み
Pythonのスライスは、指定したインデックスが文字列の長さを超えてもエラーになりません。たとえば、5文字の文字列に10まで指定しても大丈夫です。
text = "こんにちは"
print(text[0:10])
こんにちは
このように、安全に使えるのがスライスの良いところです。
9. スライスの応用:逆順に取り出す
スライスで-1
をステップにすると、文字列を逆から取り出すことができます。
text = "Python"
print(text[::-1])
nohtyP
このように、文字列を反転させるのもスライスでできます。
10. 練習問題:文字列の一部を取り出してみよう
次の文字列から「ログイン」という文字だけを取り出してみましょう。
text = "ユーザーログイン成功"
print(text[4:7])
ログイン
このように、必要な部分だけを簡単に取り出すことができます。