【初級編3】Pythonのsplit関数で文字列を配列にしよう

Python入門

今回はPythonのsplit関数の使い方を解説します。

split関数はPythonの関数の中でも特に利用頻度が高いです。

しかし、使い方がややこしい面もあり、特に初心者は「どうやるんだっけ」となりがちです。

そこで本記事ではsplit関数の使い方を項目ごとに分けて丁寧に解説します。

split関数の使い方で分からない点があったら、ぜひ本記事を参考にしてくださいね。

なお、関数そのものについて知りたい方は【入門編10】Pythonの代表的な組み込み関数を使ってみようをお読み頂けると良いでしょう。

splitの使い方

splitメソッドは文字列を、指定した「区切り文字」ごとに区切って、配列にするために使います。

たとえば「111|222|333」という文字列を「|」ことに区切って、[111,222,333]という配列に変換できるのです。

splitメソッドの基本的な使い方を紹介しましょう。

以下の項目に分けて解説していきます。

  • 文字列を分割する
  • 「&」で文字列を分割する
  • 区切る回数を指定して分割する
  • 正規表現で文字列を分割する
  • 複数の区切り文字で文字列を分割する

難しいのは正規表現のやり方ぐらいで、他はそうでもありません。

1つ1つsplitメソッドの使い方を解説していきます。

文字列を分割する

まずはもっとも基本的なsplitメソッドの使い方をみていきましょう。

文字列を「スペース区切り」で分割する方法です。

○コード例

fruit = 'banana apple watermelon yuzu'
print(fruit.split())

○実行結果

今回は文字列をfruit変数に格納しています。

splitメソッドによって、文字列がスペースごとに区切られています

引数に何もいれないとsplitメソッドは、スペースごとに区切ってくれます

これがsplitメソッドの基本的な使い方となります。

「&」で文字列を分割する

続いてスペースではなく「&」などの記号ごとに文字列を分割する方法を解説します。

○コード例

fruit = 'banana&apple&watermelon&yuzu'
print(fruit.split("&"))

○実行結果

「&」で区切る場合は引数に「&」を指定すれば良いだけです。

これで先程と全く同じ実行結果が得られました。

「&」ではなく「%」を指定すれば「%」ごとに区切られますし、他の記号で区切ることも可能です。

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

今度は区切る回数を指定して分割する方法をみていきましょう。

○コード例

fruit = 'banana&apple&watermelon&yuzu'
print(fruit.split("&", 2))

○実行結果

上記のコードでは、splitの第二引数を「2」と指定しています。

こうすることで、2番目までの「&」で区切られるようになります。

3番目の「&」では区切られず「watermelon&yuzu」と表示されていますね。

第二引数に区切りたい数を指定すれば、それ移行は区切られなくなります

正規表現で文字列を分割する

正規表現で文字列を分割する方法をみていきましょう。

○コード例

import re
 
fruit = 'banana&apple&watermelon&yuzu'
print(re.split("&", fruit))

○実行結果

正規表現を使う場合は最初に「import re」と記入してください。

正規表現を使う場合「re.split(区切り文字, 文字列)」と記述します

これで、先程同様「&」ごとに文字列が区切られるようになりました。

これが正規表現の基本的な使い方です。

複数の区切り文字で文字列を分割する

複数の区切り文字で文字列を分割するには、正規表現を利用します。

○コード例

import re

fruit = 'banana&apple&watermelon%yuzu'
print(re.split('&|%', fruit))

○実行結果

上記のコードでは、先程同様正規表現を使っています。

正規表現では「&|%」と記述することで、「&または%であるもの」という意味になります

「&」と「%」の2つを区切り文字として、文字列が区切られるようになるのです。

正規表現は奥が深いので、ぜひ自分で調べて使いこなせるようになってくださいね。

split以外の文字列を区切る関数

最後にsplit以外の文字列を区切る関数を紹介しましょう。

こちらもたまに使うことがあるのでぜひ覚えておいてくださいね。

rsplitの使い方

rsplitというメソッドがあります。

splitメソッドは第二引数に数値を入力すると、その数値の数だけ「左から」区切られるようになりました。

rsplitメソッドに第二引数に数値を入力すると、今度は「右から」区切られるようになるのです。

○コード例

fruit = 'banana&apple&watermelon&yuzu'
print(fruit.rsplit("&", 2))

○実行結果

上記のコードではrsplitメソッドの第二引数に「2」を指定しています。

こうすることで、右から数えて2番目までの区切り文字のみ機能するようになります。

そのため「banana」と「apple」は区切られず、「banana&apple」と表示されているのです。

右側から区切りたい場合はこのように、rsplitを使います

ちなみにrsplitの「r」は「right」という意味です。

「r」が付いている関数やメソッドは、右側から処理をするものが多いです。

逆にleftを意味する「l」が付いている関数やメソッドは、左側から処理するものが多いですね。

このように覚えておくと、関数を使う場合に一々調べなくて済みますよ。

まとめ

本記事ではPythonのsplit関数について解説しました。

split関数で文字列を配列に変換できることがお分かり頂けたかと思います。

split関数の第一引数に文字列を指定することで、その文字列を区切り文字とすることが可能です。

更に第二引数に数値を指定することで、その数値まで文字列を区切ることができます

split関数は使う頻度が高めなので、この機会にぜひ使い方を覚えて頂けると幸いです。

次回はPythonで文字列を置換する方法を解説します。

❤内容は役に立ちましたか?皆さまのご意見が励みになります☺
YesNo
無料でスキルを学んでからIT業界に転職

そろそろ本気で将来のことを考えなくちゃ……手に職をつけてIT業界に転職したいなぁ。でも、業界未経験だから、なんか敷居が高そう、と思っている方へ。

これからIT業界への転身を目指すあなたに、無料でスキルアップできて、平均で年収は90万円もアップできるんです。

Python入門
【この記事を書いた人】
谷津弘樹

某自社開発のIT企業に勤めていた元webプログラマーです。主にサーバーサイド側を担当し、phpを使った開発経験があります。現在は退職しフリーランスライターとして活動中。IT系の記事を主に執筆し生計を立てています。

タイトルとURLをコピーしました