【Python】split関数を使った文字列の分割方法

Python 文字列 組込み型 組込み関数
  • スペース区切りで文字列(文章スペース区切りの入力値)を分割したい!
  • カンマ(,)区切りで文字列(何らかのデータ等)を分割したい!

こんな時は、文字列のメソッドのsplit()を使うと便利です。この関数はスペースやカンマ(,)だけでなく任意の文字列を区切り文字として設定することも出来ます。今回は、この関数の使い方についてまとめます。
# 2019/6/26 記事更新

確認した環境

  • Ubuntu16.04LTS
  • Python 3.7.2@Anaconda

split()関数を用いた文字列の分割

split()は文字列のメソッドで、引数に設定した「区切り文字」で区切られた単語のリストを返します。
具体例を以下に示します。

任意の文字(文字列)を区切り文字に設定した場合

引数、任意の区切り文字を設定した場合の例を幾つか挙げます。

  • スペース区切りで分割
  •  >>> 'a b c'.split(' ')
    ['a', 'b', 'c']
  • コロン(:)で分割
  • >>> 'a:b:c'.split(':')
    ['a', 'b', 'c']
  • 文字列で分割
  • >>> 'a<=b<=c'.split('<=')
    ['a', 'b', 'c'] 

<参考>連続した区切り文字(例えば ‘ ,,’ )はまとめられず、空の文字列で区切っていると判断されます。

>>> 'a,,b,c'.split(',')
['a', '', 'b', 'c']

引数を省略した場合

引数を省略した場合は、空白文字で分割されます。

>>> 'a b c'.split()
['a', 'b', 'c']

競技プログラミングで入力値としてよく見かける「複数の値がスペースで区切られている文字列」をそれぞれの変数に代入する処理は、split()とリスト内包表記を使って簡単に書けます。例えば、

# 文字列が標準入力からスペース区切りで与えられた場合
>>> x, y, z = [s for s in input().split()]

# 入力値
one two three

# 出力結果
>>> x, y, z
('one', 'two', 'three')

<参考>文字列の先頭や末尾に空白がある場合

引数を省略した場合は、最初と最後に空白文字は含まれません。

>>> ' a b c '.split()
['a', 'b', 'c']

一方、引数(区切り文字)が設定されている場合は、先頭と末尾の空白も結果に含まれます。

>>> ' a b c '.split(' ')
['', 'a', 'b', 'c', '']

まとめ

今回は、文字列のメソッドであるsplit()を用いて、文字列を任意の区切り文字で分割する方法についてまとめました。
文章を単語に区切るとか、カンマ(,)で区切られたデータをリストに変換場合などに使えます。競技プログラミングの入力にも良く出てきますね。

Learn more...

書籍でもう少し詳しく学びたい場合はこちらもどうぞ。筆者もかなり参考にさせてもらっています!

シェアする
ひびきをフォローする
Hbk project