Python split 文字列を分割してリストにする

Pythonの文字列を分割してリストにするサンプルです。(確認環境:Python 3)

目次

サンプル splitとは
  カンマで区切る / 半角スペースで区切る / タブで区切る
  スラッシュで区切る/ 改行で区切る
  正規表現で区切り文字をORで指定 / 複数の区切り文字を指定
  分割数を指定する / 末尾が区切り文字の時、最後は要素になる?
  右から分割して分割数を指定する(rsplitメソッド)

splitとは

文字列.split(区切り文字列 [,分割数 ])
  • 文字列を指定した区切り文字列で区切りリストを返します。。
  • 分割数を指定しない場合は、文字列の末尾まで分割します。

カンマで区切る

str1 = 'a,b,c'
list1 = str1.split(',')

for a in list1:
	print(a) # a b cが出力される
print(list1) # ['a', 'b', 'c']

文字列をカンマ区切りでリストにしています。

半角スペースで区切る

import re

str1 = '赤 黄 青'
list1 = re.split('\s', str1)

for a in list1:
    print(a)  # 赤 黄 青が出力される
print(list1)  # ['赤', '黄', '青']

正規表現で半角スペースを指定しています。

タブで区切る

import re

str1 = '赤	黄	青'
list1 = re.split('\t', str1)

for a in list1:
    print(a)  # 赤 黄 青が出力される
print(list1)  # ['赤', '黄', '青']

正規表現でタブを指定しています。

スラッシュで区切る

str1 = '2020/05/21'
list1 = str1.split('/')

for a in list1:
    print(a)  # 2020 05 21が出力される
print(list1)  # ['2020', '05', '21']

文字列をスラッシュで区切ってリストにしています。

改行で区切る

str1 = '赤と黄\r\n青と緑\n白と黒'
list1 = str1.splitlines()

for a in list1:
    print(a)  # '赤と黄' '青と緑' '白と黒'
print(list1)  # ['赤と黄', '青と緑', '白と黒']

splitlinesは、復帰改行(CRLF)と改行(LF)を区切ります。

正規表現で区切り文字をORで指定

import re

str1 = 'あ,い:う,え'
list1 = re.split('[,:]', str1)

print(list1)  # ["あ", "い", "う", "え"]

[,:]は、カンマ(,)またはコロン(:)という正規表現です。

複数の区切り文字を指定

import re

str1 = 'a:a:;bb:;c;c'
list1 = re.split(':;', str1)

print(list1)  # ['a:a', 'bb', 'c;c']

4行目は、コロン(:)とセミコロン(;)の2文字が区切り文字です。

分割数を指定する

str1 = 'あ,い,う,え,お'
list1 = str1.split(',',2)

print(list1) # ['あ', 'い', 'う,え,お']

splitメソッドの2つめの引数は分割数です。
2行目の分割数は2なので要素数は3つになります(「あ」と「い」と「うえお」)。

末尾が区切り文字の時、最後は要素になる?

str1 = 'a,b,c,,'
list1 = str1.split(',')

print(list1) # ['a', 'b', 'c', '', '']

1行目は、末尾がカンマで終わっています。
結果は、空文字も要素として取得します。

右から分割して分割数を指定する(rsplit)

rsplitメソッドを使用します。

str1 = 'a,b,c,d,e'
list1 = str1.rsplit(',',2)

for a in list1:
	print(a) # a,b,c d eが出力される
print(list1) # ['a,b,c', 'd', 'e']

rsplitメソッドは、右から分割します。
2行目の分割数は2なので要素数は3つになります。

以下はpython公式ドキュメントのsplitメソッドのリンクです。
https://docs.python.jp/3/library/stdtypes.html#str.split

関連の記事

Python 文字列の始め/終わりを確認(startswith/endswith)
Python 文字列の位置を取得する(find/index)

△上に戻る