今回は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で文字列を置換する方法を解説します。