カテゴリ: Python 更新日: 2026/01/23

Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方

Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonで文字列の一部だけを取り出したいときってどうすればいいんですか?」

先生

「それならスライスという仕組みを使えば、好きな場所から文字列を切り出すことができますよ!」

生徒

「スライスってなんか難しそうですね…」

先生

「大丈夫!例を使ってわかりやすく説明します。一緒にやってみましょう!」

1. スライスとは?

1. スライスとは?
1. スライスとは?

スライスとは、Pythonで文字列(ストリング)の中から「必要な部分だけ」を切り出す仕組みです。たとえば、長い文章の中から先頭の数文字だけ取り出したいときや、途中の文字だけ取り出したいときに役立ちます。

基本の書き方はとてもシンプルで、次のように書きます。

文字列[開始位置:終了位置]

このとき「開始位置から終了位置の1つ手前まで」が取り出されます。数字で位置を指定するだけなので、プログラミング初心者でも覚えやすいのがポイントです。

例えば、次の例では文字列の先頭から6文字だけを取り出しています。


text = "Pythonプログラミング"
print(text[0:6])

Python

このように、インデックス(位置)を指定するだけで、文字列の一部を簡単に抽出できます。文章の前半だけ取り出すときや、ファイル名から特定の部分を抜き出したいときなど、いろいろな場面で使える便利なテクニックです。

2. 開始位置だけ指定する

2. 開始位置だけ指定する
2. 開始位置だけ指定する

スライスでは、開始位置だけを指定して「どこから先をすべて取り出すか」を表現できます。終了位置を省略すると、開始した場所から文字列の末尾までがそのまま切り出されます。文章の後半だけを取り出したいときや、決まった見出しをスキップしたいときに便利です。

まずは基本の例です。先頭から数えて位置を決め、そこから最後まで取得します。


text = "Python入門"
print(text[6:])   # 6文字目以降を末尾まで取り出す

入門

開始位置は「0が先頭、1が次、2がその次…」という数え方です。先頭の決まり文句や接頭語を飛ばしたいときは、不要な長さを数えてそこから末尾までを切り出す、という考え方で使うと覚えやすくなります。

途中から最後までを取りたい別の例も見てみましょう。今度は途中の単語から末尾までを切り出します。


title = "学習ガイド:Python基礎"
# 「:」を含めた前半を飛ばしたい場合、前半の文字数を数えて開始位置にする
print(title[5:])  # 5文字目以降を末尾まで

Python基礎

このように、終了位置を省略して開始位置だけを指定する書き方は、後半を丸ごと取りたいときの定番パターンです。固定の見出しを除いた本文の抽出、接頭辞を取り除いた識別子の取得など、日常的な文字列処理でよく使われます。まずは「必要のない手前を数えて、そこから最後まで」を合言葉に、迷ったらこの形から試してみましょう。

3. 終了位置だけ指定する

3. 終了位置だけ指定する
3. 終了位置だけ指定する

開始位置を省略すると、最初から指定した位置まで切り出します。


text = "Python入門"
print(text[:6])

Python

4. 最後の文字だけ取り出す

4. 最後の文字だけ取り出す
4. 最後の文字だけ取り出す

Pythonでは、マイナスのインデックスを使うと後ろから数えることができます。


text = "Python"
print(text[-1])

n

これは「最後の文字」という意味です。

5. ステップを指定する

5. ステップを指定する
5. ステップを指定する

文字列[開始:終了:ステップ]とすると、何文字ごとに取り出すかも指定できます。


text = "abcdef"
print(text[::2])

ace

2文字ごとに取り出しています。

6. 応用:文字列の一部を取り出して再利用

6. 応用:文字列の一部を取り出して再利用
6. 応用:文字列の一部を取り出して再利用

スライスを使えば、必要な部分だけ取り出して再利用できます。


email = "info@example.com"
domain = email[email.index("@")+1:]
print(f"ドメインは {domain} です")

ドメインは example.com です

7. よくあるエラーに注意

7. よくあるエラーに注意
7. よくあるエラーに注意

存在しないインデックスを指定しても、Pythonはエラーを出しませんが、空文字列になります。


text = "Python"
print(text[100:])


範囲外のインデックスを使ってもエラーにならない点がPythonの特徴です。

まとめ

まとめ
まとめ

Pythonのスライス機能を活用することで、文字列の一部を自在に取り出す方法が身につきました。特に「開始位置:終了位置」というシンプルな書き方を覚えるだけで、テキスト処理の幅がぐんと広がります。今回紹介したように、最初から取り出す・最後まで取り出す・末尾の文字を抜き出す・2文字ごとに抽出するなど、さまざまなパターンに対応できるのがスライスの魅力です。

さらに、メールアドレスからドメイン部分だけを抜き出したり、文字列を加工して別の処理に使う場面でも、スライスはとても役立ちます。Pythonでは「文字列はリストのように扱える」という考え方が基本にあるため、数字の位置指定で切り出せる仕組みはとても直感的です。

また、インデックスの範囲外を指定してもエラーにならず空文字列が返るという特徴も、Python初心者にとっては安心できるポイントです。とはいえ、思わぬバグにつながることもあるため、想定外の入力にも対応できるようにすることが大切です。

最後に、スライスを正しく使いこなすためには「インデックスは0から始まる」「終了位置はその一歩手前まで」というPython独自のルールを忘れないようにしましょう。Pythonの文字列操作では頻繁に登場する技術なので、まずは基本形を何度も試して、自分の手になじませることが最初の一歩です。

先生と生徒の振り返り会話

生徒

「スライスって最初は難しそうだったけど、ちゃんと仕組みを知れば思ったより簡単でした!」

先生

「そうですね。特に開始位置と終了位置の使い方がポイントでしたね。」

生徒

「メールアドレスからドメインだけを取り出すのも、index()とスライスを組み合わせればできるなんて便利です!」

先生

「実際のデータ処理でもよく使われるテクニックですよ。応用することで、URLやファイルパスの整理にも活かせます。」

生徒

「あ、あとスライスって範囲外でもエラーにならないのはPythonならではって感じがしました。便利だけど油断しないようにします!」

先生

「えらいですね!その意識があれば、Pythonでの文字列処理がもっとスムーズになりますよ。次はリストのスライスも試してみましょうか。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Pythonで文字列から特定の部分だけを取り出すにはどうすればいいですか?

Pythonではスライス構文を使うことで、文字列から任意の範囲を簡単に取り出すことができます。
カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.6
Java&Spring記事人気No6
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.7
Java&Spring記事人気No7
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説