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']
関連記事
- Pythonで文字列を検索(find, rfind, index, rindex)
- Pythonで文字列を中央寄せ・左寄せ・右寄せ(center, ljust, rjust)
- Pythonで文字列を置換(replace, translate, re.sub)
- Pythonで文字列の大文字・小文字を変換(upper, lower, capitalize, title, swapcase)
- Pythonで文字列の先頭・末尾の空白を削除(strip, lstrip, rstrip)
- Pythonで文字列を結合(join, +演算子)
- Pythonで文字列の先頭と末尾が特定の文字列か判定(startswith, endswith)
- Pythonで文字列の出現回数をカウント(count)
- Pythonで文字列をスライスで部分抽出
- Pythonで文字列をフォーマット(format, f文字列 (Python 3.6以降), %演算子)