文字列 文法・環境

【Python】文字列を分割する方法【split、splitlinesなど】

Pythonにおいて、文字列を分割する方法について紹介します。

本記事では、以下の内容を紹介しています。

この記事で分かること

  • 区切り文字で分割してリスト化【split( )】
  • 区切り文字で右から分割してリスト化【rsplit( )】
  • 改行で分割してリスト化【splitlines( )】
  • 正規表現を用いて分割【re.split( )】
  • 文字列を1文字ずつ分割してリスト化【list( )】
  • 文字数で分割【スライス】

スポンサーリンク

区切り文字で分割してリスト化【split( )】

文字列を区切り文字で分割して、リストにする方法について紹介します。

文字列のsplit( )メソッドを使用することで、文字列を分割することができます。

書き方

"文字列".split( "区切り文字", 最大分割数)

第一引数には、区切り文字を指定します。

第一引数を省略した場合は、空白文字で分割されます。

空白文字には、半角スペース、全角スペース、改行(\n、\r\n)、タブ(\t)が含まれます。

以下、サンプルコードです。

fruits = 'Apple Banana Orange Grape Lemon'

fruits_sp = fruits.split()
print(fruits_sp)
# ['Apple', 'Banana', 'Orange', 'Grape', 'Lemon']

分割前の文字列に、半角スペース、全角スペース、タブ、改行が含まれていても分割できます。

fruits = 'Apple Banana Orange\tGrape\nLemon\r\nPeach  Kiwi'
print(fruits)
# Apple Banana Orange	Grape
# Lemon
# Peach  Kiwi
print(repr(fruits))
# 'Apple Banana\u3000Orange\tGrape\nLemon\r\nPeach \u3000Kiwi'

fruits_sp = fruits.split()
print(fruits_sp)
# ['Apple', 'Banana', 'Orange', 'Grape', 'Lemon', 'Peach', 'Kiwi']

サンプルコードでは、スペースが削除されたことを分かりやすくするために、Pythonの組み込み関数であるrepr( )関数を使用しています。

"\u3000"は、全角スペースの文字コードです。

以下、第一引数の区切り文字として、カンマを指定したサンプルコードです。

fruits = 'Apple, Banana, Orange, Grape, Lemon'

fruits_sp = fruits.split(',')
print(fruits_sp)
# ['Apple', ' Banana', ' Orange', ' Grape', ' Lemon']

カンマで区切ることはできていますが、要素に空白文字が残ってしまっています。

文字列のstrip( )メソッドと組合せることで、空白文字を除去できます。

fruits = 'Apple, Banana, Orange, Grape, Lemon'

fruits_sp = fruits.strip(' ').split(',')
print(fruits_sp)
# ['Apple', ' Banana', ' Orange', ' Grape', ' Lemon']

以下、最大分割数を指定するサンプルコードです。

区切り文字は半角スペースを指定しています。

fruits = 'Apple Banana Orange Grape Lemon'

fruits_sp = fruits.split(' ', 2)
print(fruits_sp)
# ['Apple', 'Banana', 'Orange Grape Lemon']

はじめの2つ分の文字列が分割され、以降の文字列は分割されていません。

スポンサーリンク

区切り文字で右から分割してリスト化【rsplit( )】

文字列を右から分割して、リストにする方法について紹介します。

文字列のrsplit( )メソッドを用いることで、文字列を右から分割することができます。

fruits = 'Apple Banana Orange Grape Lemon'

fruits_sp = fruits.rsplit(' ', 2)
print(fruits_sp)
# ['Apple Banana Orange', 'Grape', 'Lemon']

rsplit( )メソッドでは、右から分割されています。

改行で分割してリスト化【splitlines( )】

文字列を改行で分割してリストにする方法について紹介します。

文字列のsplitlines( )メソッドを用いることで、文字列を改行で分割することができます。

区切りの改行文字として、LF(\n)と、CR+LF(\r\n)が対象になります。

以下、改行で分割するサンプルコードです。

fruits = 'An apple\nTwo bananas\r\nThree oranges\nFour grapes\r\nFive lemons'
print(fruits)
# An apple
# Two bananas
# Three oranges
# Four grapes
# Five lemons

print(repr(fruits))
# 'An apple\nTwo bananas\nThree oranges\nFour grapes\nFive lemons'

fruits_sp = fruits.splitlines()
print(fruits_sp)
# ['An apple', 'Two bananas', 'Three oranges', 'Four grapes', 'Five Lemons']

"\n" と "\r\n" の改行文字が混在していても、改行で文字列が分割できています。

スポンサーリンク

正規表現を用いて分割【re.split( )】

文字列を、正規表現を用いて分割する方法について紹介します。

正規表現とは、文字列をパターンで表現する記述方法です。

正規表現を用いることで、指定したパターンに当てはまる文字列を検索することができます。

Pythonの標準ライブラリである、"reモジュール"を用いることで、正規表現を扱うことができます。

reモジュールのsplit( )関数は、マッチしたパターンで文字列を分割することができます。

書き方

re.split( パターン, 対象の文字列 )

以下、サンプルコードです。

数値が1文字以上連続した場合に、文字列を分割します。

import re

fruits = 'Apple123Banana456Orange789Grape10Lemon'

fruits_sp = re.split(r'[0-9]+', fruits)
print(fruits_sp)
# ['Apple', 'Banana', 'Orange', 'Grape', 'Lemon']

正規表現については、以下の記事で紹介しています。

正規表現の基本的な使用方法

文字列を1文字ずつ分割してリスト化【list( )】

文字列を1文字ずつ分割して、リストにする方法について紹介します。

組み込み関数のlist( )関数を用いることで、文字列を1文字ずつ分割することができます。

以下、サンプルコードです。

fruits = 'Apple Banana'

fruits_sp = list(fruits)
print(fruits_sp)
# ['A', 'p', 'p', 'l', 'e', ' ', 'B', 'a', 'n', 'a', 'n', 'a']

スポンサーリンク

文字数で分割【スライス】

文字列を、文字数で分割する方法について紹介します。

スライスを用いることで、文字列を文字数で分割することができます。

以下、サンプルコードです。

fruits = 'AppleBananaOrange'

print(fruits[:5])
# Apple

print(fruits[5:11])
# Banana

print(fruits[11:])
# Orange

文字列のスライスについては、以下の記事で紹介しています。

スライスを用いて、文字列の一部を取得

スポンサーリンク

-文字列, 文法・環境
-,