本ページはプロモーションが含まれています

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

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

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

スポンサーリンク

確認した環境

  • Ubuntu20.04LTS@Windows 10 WSL2
  • Python 3.9.0

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

参考書籍

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

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

コメント

  1. […] 以上で日本語の文章の解析結果を取得できるようになりました。これらの結果は文字列で得られるので、split()や正規表現等を使って必要な情報を抽出することが出来ます。参考記事)【Python】split()を使った文字列の分割方法 参考記事)【Python】正規表現 reモジュールの使いかたの基本 […]