Pythonでは、一つの文字列を複数の部分に分けたいことがあります。
例えば、「りんご,みかん,バナナ」という文字列から、それぞれの果物を取り出したい場合です。
このような処理には、主に「split()メソッド」を使います。
この記事では、文字列をカンマや空白で分割する基本的な方法から、分割回数の指定、空の要素に関する注意点まで、初心者向けに分かりやすく解説します。
split()で文字列を分割する
文字列を特定の記号で分けるには、「split()」の括弧内に区切り文字を指定します。
# カンマで区切られた文字列
text = "りんご,みかん,バナナ"
# カンマの位置で文字列を分割
fruits = text.split(",")
print(fruits) # ['りんご', 'みかん', 'バナナ']実行結果はリストになります。
分割前は一つの文字列ですが、分割後は「りんご」「みかん」「バナナ」という3つの要素として個別に扱えます。
「split()は文字列を切るだけでなく、扱いやすいリストへ変換する機能」と考えると分かりやすいでしょう。
分割後の要素を取り出す
「split()」で作られたリストは、通常のリストと同じ方法で操作できます。
date_text = "2026/09/12"
# スラッシュで年月日を分割
date_parts = date_text.split("/")
# 分割した要素を個別に取り出す
year = date_parts[0]
month = date_parts[1]
day = date_parts[2]
print(year) # 2026
print(month) # 09
print(day) # 12リストの位置を表す番号は「0」から始まります。
そのため、最初の要素は「date_parts[0]」、2番目の要素は「date_parts[1]」で取得します。
文字列の分割は、単に見た目を変える処理ではありません。「一つにつながったデータを、個別に利用できる形へ整える処理」でもあります。
空白で文字列を分割する
括弧内に何も指定せず「split()」を使うと、空白を基準に文字列を分割できます。
# 単語の間に空白がある文字列
text = "Python は 初心者 にも 学びやすい"
# 空白ごとに分割
words = text.split()
print(words)実行結果は次のとおりです。
['Python', 'は', '初心者', 'にも', '学びやすい']引数を省略した「split()」は、連続した空白もまとめて区切りとして扱います。
# 単語の間に複数の空白がある
text = "赤 青 緑"
# 連続する空白をまとめて処理
colors = text.split()
print(colors) # ['赤', '青', '緑']利用者が入力した文章では、空白の数が一定とは限りません。
単語を空白で分ける場合は、括弧内に半角スペースを指定するより、「split()」と引数を省略するほうが扱いやすいことがあります。
指定した回数だけ分割する
「split()」の第2引数には、分割する最大回数を指定できます。
基本的な書き方は次のとおりです。
文字列.split(区切り文字, 最大分割回数)実際のコードで確認してみましょう。
# 名前と説明をコロンで区切った文字列
text = "商品名:ノート:表紙が青い商品"
# 左から1回だけ分割
parts = text.split(":", 1)
print(parts)実行結果は次のとおりです。
['商品名', 'ノート:表紙が青い商品']最大分割回数に「1」を指定しているため、最初に見つかったコロンだけで分割されています。
文章の後半にも同じ記号が含まれる可能性がある場合は、「分割しすぎないように回数を制限する」とデータの形を保ちやすくなります。
右側から分割するにはrsplit()を使う
通常の「split()」は左側から分割します。
右側から分割したい場合は、「rsplit()」を使います。
# 複数のピリオドを含むファイル名
file_name = "python.lesson.01.txt"
# 右側から1回だけ分割
name, extension = file_name.rsplit(".", 1)
print(name) # python.lesson.01
print(extension) # txtこの方法なら、途中にピリオドが含まれていても、最後の「txt」を分けて取得できます。
ただし、実際のプログラムでファイルの拡張子やパスを扱う場合は、「pathlib」などの専用機能も選択肢になります。
「split()で分割できるから必ず使う」のではなく、処理の目的に合う方法を選ぶことも大切です。
改行ごとに文字列を分割する
複数行の文字列を行ごとに分ける場合は、「splitlines()」が便利です。
# 複数行の文字列
text = """りんご
みかん
バナナ"""
# 改行ごとに分割
fruits = text.splitlines()
print(fruits) # ['りんご', 'みかん', 'バナナ']改行を表す文字は、実行環境によって異なる場合があります。
「splitlines()」を使えば、改行の種類を細かく指定しなくても、行ごとに分割できます。
区切り文字がない場合はどうなるか
指定した区切り文字が見つからなくても、エラーにはなりません。
元の文字列を一つだけ含むリストが返されます。
text = "りんご"
# 元の文字列にカンマは含まれていない
result = text.split(",")
print(result) # ['りんご']
print(len(result)) # 1「分割できなかったら空のリストになる」と考えやすい部分ですが、元の文字列は消えません。
区切り文字がある場合もない場合も、戻り値はリストになります。
連続する区切り文字に注意する
区切り文字を指定した場合、その文字が連続すると空文字が要素に含まれます。
# 2番目の値が空になっている
text = "りんご,,バナナ"
# カンマで分割
fruits = text.split(",")
print(fruits) # ['りんご', '', 'バナナ']2つのカンマの間には文字がないため、空文字の「”」が作られます。
空文字を取り除きたい場合は、次のように書けます。
text = "りんご,,バナナ"
# 分割後に空文字を除外
fruits = [fruit for fruit in text.split(",") if fruit]
print(fruits) # ['りんご', 'バナナ']ただし、空欄にも「値が入力されていない」という意味があります。
例えばCSV形式のデータでは、空欄を削除すると列の位置がずれることがあります。「空の要素は不要」と決めつけず、残すべきデータか確認してから処理しましょう。
分割後の余分な空白を取り除く
カンマの後ろに空白がある文字列を分割すると、その空白も要素の一部として残ります。
text = "東京, 大阪, 名古屋"
# カンマで分割
cities = text.split(",")
print(cities) # ['東京', ' 大阪', ' 名古屋']余分な空白を取り除く場合は、「strip()」を組み合わせます。
text = "東京, 大阪, 名古屋"
# 分割後に各要素の前後の空白を削除
cities = [city.strip() for city in text.split(",")]
print(cities) # ['東京', '大阪', '名古屋']「strip()」は、文字列の前後にある空白や改行を取り除くメソッドです。
利用者の入力や外部ファイルから読み込んだデータには、余分な空白が混ざることがあります。
実際のプログラムでは、「文字列を分割したら終わり」ではなく、「分割後のデータを使いやすい形に整える」ところまで考えると、想定外の動作を防ぎやすくなります。
split()とjoin()の違い
「split()」と反対の働きをするのが「join()」です。
- 文字列を分けてリストにする:「split()」
- リスト内の文字列をつなげる:「join()」
両方を使った例を見てみましょう。
text = "赤,青,緑"
# 文字列をリストに分割
colors = text.split(",")
# リストの要素を読点でつなげる
new_text = "、".join(colors)
print(new_text) # 赤、青、緑「split()」と「join()」をセットで覚えると、文字列とリストを相互に変換しやすくなります。
まとめ
Pythonで文字列を分割するには、主に「split()メソッド」を使います。
text = "りんご,みかん,バナナ"
# カンマで文字列を分割
fruits = text.split(",")
print(fruits)今回のポイントは次のとおりです。
- 指定した記号で分割する:「split(区切り文字)」
- 空白で分割する:「split()」
- 分割回数を制限する:「split(区切り文字, 回数)」
- 右側から分割する:「rsplit()」
- 改行ごとに分割する:「splitlines()」
- 分割後の余分な空白を消す:「strip()」
文字列の分割で大切なのは、方法を暗記することだけではありません。
「どの文字を境界にするのか」「分割後のデータを何に使うのか」を先に考えると、適切な書き方を選びやすくなります。
まずはカンマや空白で区切られた身近な文字列を用意し、分割後のリストから必要な要素を取り出してみましょう。

