Pythonのsplit関数は文字列分割で活用する!その使用方法について解説

簡単な業務ツールからAIまで、幅広い分野で活用されているプログラミング言語の「Python」が広く注目を集めています。Pythonはいろいろな関数が利用できるのも特徴の一つであり、今回紹介するsplit関数もその中の一つです。split関数は業務ツールのシステム開発など、さまざまなシチュエーションで利用できる関数です。そこでこの記事では、split関数の基本的な使い方について見ていきます。

Pythonのsplit関数の基礎知識

Pythonでしばしば使用されるsplit関数は、「os.pathモジュール」の一種です。split関数を利用することで、ファイルパスを末尾の用途とその他に分割できます。

文字列を分割するために活用

split関数とは、Stringと呼ばれる文字列型オブジェクトを分割する役割のある関数です。基本的な使い方として、電話番号をハイフンで区切った場合を考えてみます。たとえば「03-1234-5678」という番号をハイフンごとに区切る場合、split関数を利用すると以下のようなソースコードで対処できます。

tel = '03-1234-5678'tel.spilt('-')

このようなソースコードを記述すれば[’03’,’1234′,’5678′]という形で出力できます。引数として、今回はハイフン(-)で区切りました。もし何も指定せずにこの関数を利用した場合、スペースや改行などの空白で区切られる形になります。

たとえばリンゴとオレンジ、バナナという文字列があって、それぞれの間にスペースがあったとします。そして以下のようなsplit関数を作成したと仮定しましょう。

text = 'リンゴ オレンジ バナナ'text.split()

この場合出力されるのは[‘リンゴ’,’オレンジ’,’バナナ’]となるわけです。

split関数の注意点

split関数の場合、区切り文字は一つしか使えない点には留意しましょう。別項で紹介することになりますが、複数の区切り文字で分割する場合には別の手法で処理することになります。

split関数の基本的な使い方を解説

split関数の役割について理解できたところで、実際にどのように使用するかについて見ていきます。すでにいくつかサンプルを紹介しましたが、さらに深掘りしてみましょう。

任意の文字で区切る

文字列を任意のところで区切ってリスト化するのは、基本の使い方です。今回は「皆さん、こんにちは」という文字列を読点(、)で区切りたいときのsplit関数の活用法について見ていきます。この場合、以下のソースコードを作成することで対処できるでしょう。

test_str = "皆さん、こんにちは"result = test_str.split("、")print(result)

こうすれば[‘皆さん’,’こんにちは’]という形で出力されるはずです。この結果を見て分かるとおり、区切り文字として設定した読点(、)は消えてしまいます。この部分には注意したほうがいいでしょう。

分割する回数も指定できる

split関数は区切りにしたい文字列だけでなく、分割する回数に関しても指定できる関数です。今回はURLをsplit関数で分割してみましょう。たとえば「http://111.222.3.4./aaaaa/com」というURLがあったと仮定しましょう。仮に、スラッシュ(/)の部分で3回区切りたかったとします。この場合、split関数を使って以下のようなコードを記述すれば、対処できるでしょう。

test_str = "http://111.222.3.4./aaaaa/com"result = test_str.split("/",3)print(result)

こうすれば、[‘http’,”,’111.222.3.4′,’aaaaa/com’]と出力されるはずです。最後のスラッシュは4回目なので、区切ることなく表示されるわけです。(引数、回数)の順番で記述することを忘れないでください。こちらを利用すると、上のURLの場合はドメインとAPIを分けることもできるでしょう。

また、中には回数は指定したいけれども、区切り文字は指定したくない場合もあるでしょう。たとえば「1 2 3 4 5」という数列があったと仮定しましょう。split関数の場合、何も指定しなければスペースの部分で区切られることはすでに紹介した通りです。もしスペースで2回区切りたかったら、以下のソースコードで対応可能です。

test_str = “1 2 3 4 5”

result = test_str.split(None,2)

print(result)

このようにオーダーを出せば[‘1′,’2′,’345’]と出力されるはずです。回数だけを指定したい場合、引数の部分には「None」と入力してください。

split関数の応用編

ここまで、Pythonにおける基本的な使い方について紹介しました。しかし少し工夫することで、より高度で複雑な区切り方を行えるようになるでyそう。そこでこの章では、しばしば登場する使い方について見ていきますので、参考にしてください。

複数の区切りを使用したい場合

Pythonのsplit関数の場合、区切り文字は一つしか指定できないことは、すでに紹介しました。しかし、複数の区切り文字で文字列を分割したい際には、split関数にreモジュールを使用することで対応できます。

たとえば三角形の公式である「底辺×高さ/2」それぞれの文字ごとに分割すると仮定しましょう。この場合の正しいソースコードは、以下の通りです。

test_text_str = '底辺×高さ/2’result = re.split('[×//]',text)print(result)

このようにソースコードを記述すれば、[‘底辺’,’高さ’,’2′]と出力されるはずです。このようにre.splitを使って、複数の区切り文字の間に「/」を入れることで対処できます。

改行で分割する方法

文字列内の改行文字のところで区切りたい場合には、splitlinesという関数を使う方法があります。たとえば「○○○\n◇◇◇\n△△△」という文字列があったとして、記号ごとに分割したかった場合、以下のソースコードで解決できます。

test_text_str = "○○○\n◇◇◇\n△△△"result = test_str.splitlines()print(result)

このようにコマンドすれば、[‘○○○’,’◇◇◇’,’△△△’]と出力されるでしょう。たとえば、複数行にまたがるテキストがあったと仮定して、行ごとに分割してまとめたいときなどに有効です。

逆から分割する場合

これまでは、文字列の順番通りに分割する方法について紹介しました。しかし中には、文字列の最後から逆の順番で分割したいことも出てくるかもしれません。その場合にはrsplitというものを使って処理できます。

具体的に見ていきましょう。前に使ったサンプル「http://111.222.3.4./aaaaa/com」というURLのスラッシュ(/)で1回だけ区切りたかったとします。右側から1回だけ区切りたい場合のソースコードの書き方は以下の通りです。

test_str = 'http://111.222.3.4./aaaaa/com'result = test_str.rsplit('/',1)print(result)

このようにコマンドすれば、[‘http://111.222.3.4./aaaaa’,’com’]という形で出力されるはずです。このように、split関数で得られる出力結果とは反対のリストが構成されるでしょう。

Pythonのsplit関数のまとめ

今回は、Pythonにおけるsplit関数の使い方についてまとめてみました。split関数を使用すれば、特定の文字のところで文字列を区切ることが可能です。split関数だけであれば、区切り文字は一つしか指定できません。しかし、今回あわせて紹介したreモジュールやsplitlines、rsplitなどの関数を使用すれば、いろいろな分け方ができるようになります。これらの関数も覚えておくと、さらにいろいろな作業が可能になるでしょう。

Pythonで文字列の分割方法をマスターすれば、できることの幅はさらに広がっていきます。文字列分割をしばしば使うような作業を担当するのであれば、split関数をマスターしておくと良いでしょう。マスターするといってもここで紹介したとおり、ソースコードはそこまで複雑なものではありません。しばらく使用すれば、だんだん慣れて、スピーディに分割処理ができるようになるはずです。

最新情報をチェックしよう!