Python

Pythonで文字列を分割させる方法について

By 2021年2月10日February 17th, 2021No Comments

Pythonを使って文字列を分割する方法について解説していきます。

この記事では文字列を区切って分割してリストにまとめて表示できるsplit( )メソッド、rsplit( )メソッド、splitlines( )メソッド、正規表現reを使います。指定した記号などで区切られた文字列を分割してリストで表示します。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト

Pythonのsplit( )メソッドで文字列を分割する方法

split( )メソッドを使うと引数として渡した区切りたい文字を指定すると文字列を分割してリストで表示する事ができます。構文は下記になります。

文字列.split(‘区切り文字’)

names = 'ヤマダ/タナカ/ウエダ/ナカタ'
name = names.split('/')
print(name)

結果:

[‘ヤマダ’, ‘タナカ’, ‘ウエダ’, ‘ナカタ’]

split( )メソッドの引数に(‘/’)スラッシュを指定して文字列を分割しました。このように区切り文字を指定すると文字列を分割する事ができます。

split( )メソッドの第2引数に分割回数を指定する事で文字列の分割回数を決める事ができます。構文は下記になります。

文字列(変数).split(‘区切り文字’, 分割回数)

names = 'ヤマダ/タナカ/ウエダ/ナカタ'
name = names.split('/', 2)
print(name)

結果:

[‘ヤマダ’, ‘タナカ’, ‘ウエダ/ナカタ’]

split( )メソッドの第2引数に分割回数を2で指定したので 2 番目の区切り文字まで文字列が分割されました。分割した文字列はforループで一つずつ取り出せます。

names = 'ヤマダ/タナカ/ウエダ/ナカタ'

name = names.split('/')
for names in name:
    print(names)

結果:

ヤマダ

タナカ

ウエダ

ナカタ


分割した文字列をforループで取り出しました。split( )メソッドで分割した文字列はリストに格納されるので分割された文字列を取り出す事ができます。

Pythonのrsplit( )メソッドを使って逆から文字列を分割する方法

rsplit( )メソッドを使うとsplit( )メソッドと異なり右から左に文字列を逆から区切り文字を指定する事ができます。構文は下記になります。

文字列(変数).rsplit(‘区切り文字’)

names = 'ヤマダ!タナカ!ウエダ!ナカタ'
print(names.rsplit('!', 1))

結果:

[‘ヤマダ!タナカ!ウエダ’, ‘ナカタ’]

rsplit( )メソッドの第2引数に分割回数を1で区切り文字を指定したので右から最初の区切り文字だけ分割して表示されました。このように区切り文字を右から指定したい場合はrsplit( )メソッドを使います。

Pythonのsplitlines( )メソッドを使って改行文字で文字列を分割する方法

splitlines( )メソッドは改行文字を指定して文字列を分割してリストにまとめる事ができます。

names = 'ヤマダ\nタナカ\nウエダ\nナカタ'
print(names)

結果:

ヤマダ

タナカ

ウエダ

ナカタ


このように文字列の改行をする記号もsplitlines( )メソッドを使用すると改行文字で区切って文字列をリストに表示する事ができます。構文は下記になります。

変数 = 文字列.splitlines( )

names = 'ヤマダ\nタナカ\nウエダ\nナカタ'
print(names)
print(names.splitlines())

結果:

[‘ヤマダ’, ‘タナカ’, ‘ウエダ’, ‘ナカタ’]

splitlines( )メソッドでは引数を指定しなくても改行文字で文字列を区切ります。改行文字も文字列として表示させたい場合はsplitlines( )メソッドの引数にTrueを指定すると改行文字も表示する事ができます。

names = 'ヤマダ\nタナカ\nウエダ\nナカタ'
list_name = names.splitlines(True)
print(list_name)

結果:

[‘ヤマダ\n’, ‘タナカ\n’, ‘ウエダ\n’, ‘ナカタ’]

改行文字も含まれて表示されました。改行があるテキストの文字列をリストにまとめたい時などでsplitlines( )を使用できます。

正規表現(re)を使って複数の区切り文字を指定して分割する方法

正規表現とsplit( )メソッドを使うと複数の文字を指定して分割する事ができます。正規表現は文字列のパターンを決めて区切り文字を指定できます。正規表現を使うためにはreというPythonのモジュールをimportします。

import re

構文は下記になります

re.split(正規表現, 文字列)

import re
names = 'ヤマダ!タナカ:ウエダ?ナカタ'
print(re.split('[!:?]', names))

結果:

[‘ヤマダ’, ‘タナカ’, ‘ウエダ’, ‘ナカタ’]
names = 'ヤマダがタナカでウエダはナカタ'
print(re.split('[あ-ん]', names))

結果

[‘ヤマダ’, ‘タナカ’, ‘ウエダ’, ‘ナカタ’]

「あ-ん」までの文字列のパターンを区切り文字に指定しました。このように正規表現とsplit( )関数を使うと複数の区切り文字を指定して分割する事ができます。

まとめ

Pythonを使った文字列を分割する方法についてでした。

split( )メソッド…区切る文字と区切る回数を指定して文字列を分割する事ができます。

rsplit( )メソッド…右から左とsplit( )とは逆方向から区切り文字を指定して分割する事ができます。

splitlines( )メソッド…改行文字を区切り文字として文字列を分割する事ができます。

正規表現(re)…複数の区切り文字を指定して文字列を分割する事ができます。

以上、記号などで区切られた文字列を分割してリストに表示させる事ができるPythonのsplit( )、rsplit( )、splitlines( )、正規表現(re)の使い方について解説しました。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL