PYTHON MEBY

Pythonで文字列を分割(split, rsplit, splitlines)

この記事では、Pythonの文字列を分割する3つの主要なメソッドであるsplit(), rsplit(), splitlines()について解説します。それぞれのメソッドの使い方、引数の意味、そして具体的な使用例を豊富なサンプルコードと共に紹介します。

目次

split()メソッド:文字列の分割

split()メソッドは、指定した区切り文字で文字列を分割し、リストとして返します。区切り文字を省略した場合は、空白文字(スペース、タブ、改行など)が区切り文字として使用されます。

string = "apple,banana,cherry"
fruits = string.split(',')
print(fruits)  # 出力: ['apple', 'banana', 'cherry']

string = "apple banana cherry"
fruits = string.split()
print(fruits)  # 出力: ['apple', 'banana', 'cherry']

split()メソッドの第2引数には、分割する回数の上限を指定できます。

string = "apple,banana,cherry,date"
fruits = string.split(',', 2)
print(fruits)  # 出力: ['apple', 'banana', 'cherry,date']

rsplit()メソッド:右端からの分割

rsplit()メソッドは、split()メソッドとほぼ同じですが、右端から分割を開始します。第2引数には、分割する回数の上限を指定できます。

string = "apple,banana,cherry,date"
fruits = string.rsplit(',', 2)
print(fruits)  # 出力: ['apple,banana,cherry', 'date']

split()と異なり、右から数えて2回分割するので、結果は異なります。

splitlines()メソッド:改行による分割

splitlines()メソッドは、改行文字(\n、\r\nなど)で文字列を分割し、リストとして返します。引数にkeepends=Trueを指定すると、改行文字を含めて分割します。

string = "apple\nbanana\ncherry"
fruits = string.splitlines()
print(fruits)  # 出力: ['apple', 'banana', 'cherry']

fruits = string.splitlines(keepends=True)
print(fruits) # 出力: ['apple\n', 'banana\n', 'cherry']

補足:分割後のリストの要素数

split(), rsplit()メソッドで分割後のリストの要素数は、区切り文字の数+1になります。splitlines()メソッドの場合は、改行の数+1になります。区切り文字がない場合は、要素数は1になります。

string = "apple,banana,cherry"
fruits = string.split(',')
print(len(fruits)) #出力 3

実践例

CSVファイルの読み込みや、ログファイルの解析など、様々な場面で文字列の分割は非常に役立ちます。以下に実践的な例を示します。

# CSVデータの読み込み
csv_data = "id,name,age\n1,John Doe,30\n2,Jane Doe,25"
lines = csv_data.splitlines()
for line in lines[1:]: # ヘッダー行をスキップ
    data = line.split(',')
    print(data) # 出力: ['1', 'John Doe', '30'] ['2', 'Jane Doe', '25']

関連記事