Pythonのsplitメソッドで文字列をリスト配列に分割するのイメージ画像

Pythonのsplitメソッドで文字列をリスト配列に分割する

  • 公開日:2019/01/16
  • 更新日:2019/02/05
  • 投稿者:n bit

Pythonで基本的な文字列(str型)分割を行うときにはsplitメソッドを利用します。今回はsplitメソッドを使用して任意の文字列の分割方法を解説。基本的な分割以外にも回数を指定した分割方法も解説しています。

  • Python

この記事は約 分で読めます。(文字)

splitメソッドで文字列を分割・削除

Pythonで基本的な文字列(str型)分割には『split』メソッドを利用します。『split』メソッドは任意の文字で分割し、分割された文字列の要素はリストに要素として格納され返されます。

『split』メソッドの指定方法は以下の通りです。

  • 分割された文字列のリスト = 分割する文字列.split(分割対象の文字列)

必要に応じて分割え回数を指定する『maxsplit』などを利用します。

それでは実際に『split』メソッドを利用して森鴎外の『知恵袋心頭語』内の1文を分かち書きしている文字列をリスト要素に分割してみましょう。

Note

森鴎外の『知恵袋心頭語』内の1文

『人 に 言う べき 事 は 、 最後 まで きちんと 言う が よい 。
全部 は 言い たく ない こと だっ たら 、
むしろ 初め から 黙っ て い よ 。』

splitを使用して文字列を分割する

『split』メソッドの引数に何も指定しない場合は空白(スペース)や改行(\n/)、タブ(\t)などを分割の文字列として扱います。

text = '''人 に 言う べき 事 は 、 最後 まで きちんと 言う が よい 。 
全部 は 言い たく ない こと だっ たら 、
むしろ 初め から 黙っ て い よ 。'''

text_new = text.split()
print(text_new)

出力結果

['人', 'に', '言う', 'べき', '事', 'は', '、', '最後', 'まで', 'きちんと', '言う', 'が', 'よい', '。', '全部', 'は', '言い', 'たく', 'ない', 'こと', 'だっ', 'たら', '、', 'むしろ', '初め', 'から', '黙っ', 'て', 'い', 'よ', '。']

文字列内の『空白(スペース)』と『改行(\n/)』を基準にして要素に分割し、リスト化されていることが確認できます。

splitで分割文字列を任意で指定して文字列を分割する

『split』メソッドの第1引数に『分割文字列』を指定して文字列を分割してみましょう。『分割文字列』はダブルクォーテーション【"】、または、シングルクォーテーション【'】で囲んで引数に指定しましょう。

『分割文字列』には『' ' 空白(スペース)』を指定しました。

text = '''人 に 言う べき 事 は 、 最後 まで きちんと 言う が よい 。 
全部 は 言い たく ない こと だっ たら 、
むしろ 初め から 黙っ て い よ 。'''

text_new = text.split(' ')
print(text_new)

出力結果

['人', 'に', '言う', 'べき', '事', 'は', '、', '最後', 'まで', 'きちんと', '言う', 'が', 'よい', '。', '\n全部', 'は', '言い', 'たく', 'ない', 'こと', 'だっ', 'たら', '、', '\nむしろ', '初め', 'から', '黙っ', 'て', 'い', 'よ', '。']

文字列内の『空白(スペース)』を基準にして要素に分割し、リスト化されていることが確認できます。引数に何も指定しない時と違い、『改行(\n/)』は指定されていないためリスト内に残っています。

splitを使用して文字列の最大分割回数を指定する

『split』メソッドで文字列の分割回数を指定することができます。最大分割回数を指定する場合は第2引数の『maxsplit』に最大分割回数を数値で渡すと機能します。

  • 分割された文字列のリスト = 分割する文字列.split(分割対象の文字列, maxsplit=数値)

先頭から『分割対象の文字列』にヒットしたものが『maxsplit』に指定した数だけ分割します。

『split』メソッドの第1引数に『' ' 空白(スペース)』を、第2引数に『5』を指定して文字列を分割してみましょう。

text = '''人 に 言う べき 事 は 、 最後 まで きちんと 言う が よい 。 
全部 は 言い たく ない こと だっ たら 、
むしろ 初め から 黙っ て い よ 。'''

text_new = text.split(maxsplit=5)
print(text_new)

出力結果

['人', 'に', '言う', 'べき', '事', 'は 、 最後 まで きちんと 言う が よい 。 \n全部 は 言い たく ない こと だっ たら 、 \nむしろ 初め から 黙っ て い よ 。']

最初に5回ヒットする文字列『' ' 空白(スペース)』だけが分割されていることが確認できます。

今日のdot

split』メソッドを使った文字列(str型)の基本的な分割方法は下記の通りです。

  • 分割された文字列のリスト = 分割する文字列.split(分割対象の文字列, 分割え文字列)

最大分割回数も指定したい場合は下記のように変更しましょう。

  • 分割された文字列のリスト = 分割する文字列.split(分割対象の文字列, maxsplit=数値)