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)