【Python入門】splitで文字列を分割する(区切り文字、分割回数、改行、後ろから分割)

  • 2025.07.04
       
【Python入門】splitで文字列を分割する(区切り文字、分割回数、改行、後ろから分割)

文字列を扱う際に、任意の箇所で分割したいケースは往々にして存在します。
データの前処理や整理などを行う上で、文字列の分割操作は必要不可欠な処理となります。

Pythonで文字列を分割する場合に使用するのが、splitメソッドです。
今回は、splitメソッドの基本的な使い方から応用方法まで、具体的に解説していきたいと思います!

Pythonのsplit()とは?

splitメソッドは、文字列を任意の文字で分割したい場合に使用するメソッドです。
文字列を分割する上での最も基本的な方法であり、使い方も単純なため初心者でも簡単に扱うことができます。

メソッドを使用すると、対象の文字列を指定の区切り文字で分割し、それぞれを要素として格納したリストが結果として返却されます。

splitメソッドの使い方

まずは、splitメソッドの基本的な使い方から確認していきましょう。

基本構文と使い方

splitメソッドを使用する際の基本構文は、以下のように記述します。

【基本構文】

文字列.split(区切り文字)

メソッドの引数には、区切り文字となる任意の文字を指定します。
引き数は省略することも可能で、デフォルトでは空白文字(スペース、改行\n、タブ\tなど)が区切り文字となっています。

以下のサンプルコードを見てみましょう。

【サンプルコード】

sampleStr = "Hello\nWorld !"

result = sampleStr.split()

print(result)

【実行結果】

['Hello', 'World', '!']

このように、splitメソッドを使用すると、分割した結果がリストとして返却されます。

なお、上記の結果を見ても分かる通りに、区切り文字そのものは結果の中には含まれないため注意が必要です。

文字列を任意の文字で区切ってリスト化する

先ほどのサンプルでは、あえて引数を指定せずに、デフォルトの空白文字で文字列を分割しました。
今度は、任意の文字を指定して分割する場合について見てみましょう。

【サンプルコード】

sampleStr = "one,two,three,four,five"

result = sampleStr.split(",")

print(result)

【実行結果】

['one', 'two', 'three', 'four', 'five']

無事に、区切り文字として指定したカンマの位置で文字列を分割することができました。

splitメソッドは扱いが簡単なメソッドですが、その代わりに単一の区切り文字しか指定することができません。
後ほど詳しく解説しますが、複数の区切り文字を指定したい場合には、正規表現を使用して文字列の分割を行う方法もあります。

分割回数を指定して区切る

splitメソッドでは、第2引数に最大分割回数を指定することができます。
区切り文字が指定の分割回数を超える場合、最大回数以上の区切り文字は無効となり、文字列が分割されないようになります。

以下のサンプルコードで実際の動きを見てみましょう。

【サンプルコード】

sampleStr = "one-two-three-four-five"

result = sampleStr.split("-", 3)

print(result)

【実行結果】

['one', 'two', 'three', 'four-five']

サンプルコードでは、最大分割回数が3回であるのに対し、指定の区切り文字が合計で4つ存在するため、最後の区切り文字の部分は分割されずに1つの文字列としてリストに格納されています。

なお、最大分割回数は、区切り文字の個数を超える数値を指定しても問題はありません。

また、分割回数のみを指定し、区切り文字は指定せずに分割を行いたい場合には、文字列の代わりにNoneを入れることで回数のみの指定だけが可能となります。

【サンプルコード】

sampleStr = "one two three four five"

result = sampleStr.split(None, 3)

print(result)

【実行結果】

['one', 'two', 'three', 'four five']

splitメソッドの使い方(応用編)

ここからは、splitメソッドを応用的に使う方法について解説していきます。

正規表現を使用して複数の単語を区切る

先ほども少し解説したように、区切り文字を複数指定したい場合に活用できるのが、正規表現を使用する指定方法です。

正規表現は、Pythonに限らずどのプログラミング言語でも活用される表現方法で、メタ文字と呼ばれる表記方法と任意の文字を組み合わせることで、様々な表記パターンを指定することができます。

Pythonで正規表現を使う際は、reモジュールを初めにインポートしておく必要があります。

【reモジュールのインポート方法】

import re

正規表現で使用できるメタ文字はかなりの種類があるため、今回はその名でも特に代表的なものをいくつか紹介します。

メタ文字 説明
. 直前のパターンの0回以上繰り返し
* 直前のパターンの0回以上繰り返し
+ 直前のパターンの1回以上繰り返し
[] [] 内のいずれか1文字
[^] [] 内の文字に該当しない いずれかの1文字

以下のサンプルコードで、実際の動きを見てみましょう。

【サンプルコード】

import re

sampleStr = "1,2+//3++4?,5"

result = re.split('[,+/?]+', sampleStr)

print(result)

【実行結果】

['1', '2', '3', '4', '5']

上記のサンプルコードでは、まず [] で対象となる4種類の区切り文字を指定しています。

  • は直前のパターンの1回以上繰り返しを指定しているので、この場合は , + / ? のいずれかが1つ以上連続して存在する箇所で文字を区切っています。

正規表現ではこのように、対象となる文字の複数指定だけでなく、表記パターンも細かく指定することが可能です。

例えば以下のように、指定する区切り文字の種類が同じでも、表記パターンを変えるだけで結果が変化する場合もあります。

【サンプルコード】

import re

sampleStr = "1,2+//3++4?,5"

result = re.split('[,+/?]+?', sampleStr)

print(result)

【実行結果】

['1', '2', '', '', '3', '', '4', '', '5']

正規表現を使用することで、より複雑なパターンの文字列分割を実装することができます。

慣れないうちは指定の仕方に少々難しさを感じてしまうかもしれませんが、覚えておくと文字列の分割だけでなく様々な場面で役に立ちます。

rsplitメソッドで文字列を後ろから分割する

splitに類似するメソッドで、rsplitというメソッドがあります。

splitメソッドは先頭から順に文字列を区切ってリストに格納しますが、rsplitメソッドの場合は末尾から順に文字列を区切るのが特徴です。

ただし、順序が逆となるのはあくまで区切りのみで、リスト内の順序は splitメソッドと変わらないので注意が必要です。

以下のサンプルコードで、動きの違いを比較してみましょう。

【サンプルコード】

sampleStr = "01-23-34-67-89"

result1 = sampleStr.split("-", 3)
result2 = sampleStr.rsplit("-", 3)

print(result1)
print(result2)

【実行結果】

['01', '23', '34', '67-89']
['01-23', '34', '67', '89']

実行結果を見ると、それぞれのメソッドで文字列の区切り位置に違いがあるのが分かると思います。

このように、区切る順序が先頭と末尾のどちらから始まるかで、分割結果に影響が出る場合があります。
必要に応じて、splitメソッドと rsplitメソッドを使い分けるといいでしょう。

splitlinesで文字列を行単位で区切る

もう1つ、splitに類似するメソッドとして、splitlinesメソッドを紹介します。

splitlinesメソッドは、複数行に渡る文字列を行で区切る事ができるメソッドです。
splitメソッドでも改行文字を指定して対応することは可能ですが、splitlinesメソッドの方がより簡潔に分割できるケースなどもあるため、覚えておくと便利なメソッドです。

まずは、サンプルコードで実際の動きを確認してみましょう。

【サンプルコード】

sampleStr = '私の名前は山田太郎です。\n16歳の高校1年生です。\nバスケ部に所属しています。'

result = sampleStr.splitlines()

print(result)

【実行結果】

['私の名前は山田太郎です。', '16歳の高校1年生です。', 'バスケ部に所属しています。']

また、splitlinesメソッドを使用する利点の1つとして、改行コードの種類に依存することなく対応できるという点が挙げられます。

改行コードは使用する環境によって違いがあり、Macを含むUnix系OSでは \n が、Windows系OSでは \r\n が使用されています。

splitメソッドでも、引数に文字を指定しないことで自動的に対応することは可能ですが、改行コード以外の空白文字も区切り文字として認識されてしまうため、改行コードのみ対応したい場合には splitlinesメソッドの方が使用に適しています。

その他、splitlinesメソッドではオプション引数として、分割結果に改行コードを含むか否かを真偽値で指定することができます。

【サンプルコード】

sampleStr = '私の名前は山田太郎です。\n16歳の 高校1年生です。\nバスケ部に所属しています。'

result = sampleStr.splitlines(True)

print(result)

【実行結果】

['私の名前は山田太郎です。\n', '16歳の 高校1年生です。\n', 'バスケ部に所属しています。']

必要に応じて、引数を指定しましょう。

まとめ

いかがでしたか?
今回は、splitメソッドを使用して文字列を分割する方法について解説しました。

例えばCSVデータ処理やログ解析など、文字列の分割は様々な場面で必要とされる処理です。
ぜひ、今回の記事も参考にしながら、実践に役立ててみてください!

Pythonの勉強方法は?

書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。

ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。

プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。

<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~

このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。

     

Programmingカテゴリの最新記事