(最終更新月:2022年1月)
✔このような方へ向けて書かれた記事となります
「Pythonで文字列を分割したい!どうやるの?」
「色々な方法がありそうだけど、どれをどんなときに使えばいいのかな?」
「初心者だから、実際のコードもあったほうが助かるんだけど、、、」
✔当記事を通じてお伝えすること
- 【簡単】Pythonで文字列を分割する方法 7つ全てを徹底解説
- 7つの方法を使い分けよう!それぞれの方法でできること、できないこと
大きく分けると、
- 特定の文字を基準とし分割する方法
- 一つずつ分解してバラバラにする方法
にわかれます
順を追って全て解説していきますので、当記事を最後まで読めば文字列の分割について完全マスターとなります
【簡単】Pythonで文字列を分割する方法 7つ全てを徹底解説

①splitメソッド
文字列.split(分割の基準となる文字, 最大分割数)
分割の基準となる文字を指定しない場合は、「空白、タブ、改行」などにより分割されます
最大分割数を指定しない場合は、制限なく該当する場合全てで分割が実行されます
【例】
>>> url_ = "https://itc.tokyo"
>>> url_.split("/")
['https:', '', 'itc.tokyo']
>>> url_.split("://")
['https', 'itc.tokyo']
基準とした文字は、分割したリストからは除外されるので注意しましょう
②splitlinesメソッド
文字列.splitlines()
改行を基準とし、分割します
【例】
>>> sentence = """
... おはようございます。
... #今日の積み上げ
... ・ブログ記事公開
... ・Webデザインの勉強
... コツコツ積み上げます。
... """
>>> sentence.splitlines()
['', 'おはようございます。', '#今日の積み上げ', '・ブログ記事公開', '・Webデザインの勉強', 'コツコツ積み上げます。']
③rsplitメソッド
文字列.rsplit(分割の基準となる文字, 最大分割数)
分割を右端から行います
【例】
>>> url_ = "https://itc.tokyo"
>>> url_.rsplit("t", 1)
['https://itc.', 'okyo']
④スライス
文字列[スタート:終わり:何個置きに]
オフセットを指定し、該当の部分を抜き出します
【例】
>>> url_ = "https://itc.tokyo"
>>> url_[1:5]
'ttps'
⑤listメソッド
list(文字列)
一文字ずつに分解し、リスト化します
【例】
>>> url_ = "https://itc.tokyo"
>>> list(url_)
['h', 't', 't', 'p', 's', ':', '/', '/', 'i', 't', 'c', '.', 't', 'o', 'k', 'y', 'o']
⑥forループ
forループを使い、一字ずつ分割ができます
>>> url_ = "https://itc.tokyo"
>>>url_ = "https://itc.tokyo/"
>>> for s in url_:
... print(s)
...
h
t
t
p
s
:
/
/
i
t
c
.
t
o
k
y
o
/
下記の用にリストにすることも可能です
>>> url_ = "https://itc.tokyo"
>>> string_list = []
>>> for s in url_:
... string_list.append(s)
...
>>> print(string_list)
['h', 't', 't', 'p', 's', ':', '/', '/', 'i', 't', 'c', '.', 't', 'o', 'k', 'y', 'o', '/']
⑦内包表記
forループを使用する方法をぐっと短くできる手法です
【例】
>>> url_ = "https://itc.tokyo"
>>> string_list = [s for s in url_]
>>> print(string_list)
['h', 't', 't', 'p', 's', ':', '/', '/', 'i', 't', 'c', '.', 't', 'o', 'k', 'y', 'o', '/']
この方法だと、条件分岐も使えます
>>> url_ = "https://itc.tokyo"
>>> string_list = [s for s in url_ if s != "/"]
>>> print(string_list)
['h', 't', 't', 'p', 's', ':', 'i', 't', 'c', '.', 't', 'o', 'k', 'y', 'o']
for文の場合も同様に条件分岐が使えます
7つの方法を使い分けよう!できること、できないこと
①splitメソッド
文字列.split(分割の基準となる文字, 最大分割数)
こんなときに使うと便利
- 空白などで分割する基準がはっきりしているとき
- 特定の文字を基準とすることがはっきりしているとき
こんなときは別の方法で
- 基準とする文字が特定できないとき
- 文字列の一部しか使用しないとき
②splitlinesメソッド
文字列.splitlines()
こんなときに使うと便利
- 改行で分割することがはっきりしているとき
こんなときは別の方法で
- 改行以外で分割したいとき
③rsplitメソッド
文字列.rsplit(分割の基準となる文字, 最大分割数)
こんなときに使うと便利
- 最大分割数が決まっているとき
- 文字列の最初の方は分割が不要とき
こんなときは別の方法で
- 最大分割数に制限がないとき
- 文字列の最初(左端)から分割する必要があるとき
④スライス
文字列[スタート:終わり:何個置きに]
こんなときに使うと便利
- オフセットがわかっているとき
- 一部を切り出したいとき
こんなときは別の方法で
- 文字列自体を分けたいとき
- 文字で分割を特定したいとき
⑤listメソッド
list(文字列)
こんなときに使うと便利
- 一文字ずつ一気にリスト化したいとき
こんなときは別の方法で
- リストに含めない文字が存在するとき
⑥forループ
forループを使い、一字ずつ分割ができます
こんなときに使うと便利
- 一文字ずつリスト化したい
- 特定の文字を含まないとき
- 特定の文字に一定の処理を加えたいとき
こんなときは別の方法で
- 単に一文字ずつリスト化したいとき
- 一文字ずつではなく、特定の文字で分割したいとき
⑦内包表記
こんなときに使うと便利
- forループをよりスッキリさせたいとき
こんなときは別の方法で
- リスト化の際に処理が複雑なとき
まとめ

文字列を分割する方法をまとめると下記の通りでした
- splitメソッド
- splitnessメソッド
- rsplitメソッド
- スライス
- listメソッド
- forループ
- 内包表記
色々な場面で使えるので覚えておくと便利ですね!
忘れてしまった時はいつでもこちらのサイトに戻ってきてください!