mei_13のPython講座 ロゴ

【Pythonコラム】Pythonの頼れる相棒 "str.split()" を使いこなそう!




Pythonの頼れる相棒 "str.split()" を使いこなそう!

Pythonで文字列を扱う際、特定の区切り文字で分割したいと思ったことはありませんか? そんな時に大活躍するのが str.split() メソッドです。 str.split() は、文字列を指定された区切り文字に基づいて分割し、分割された文字列のリストを返してくれる、まさに縁の下の力持ち的な存在です。

この記事では、str.split() の基本的な使い方から、知っておくと便利な応用例まで、初心者の方にもわかりやすく解説していきます。

str.split() の基本: 文字列を区切ってリストに変換

まずは、str.split() の最も基本的な使い方を見ていきましょう。 引数なしで str.split() を呼び出すと、文字列は空白文字(スペース、タブ、改行など)で区切られ、その結果がリストとして返されます。

text = "Hello World! This is a test."
words = text.split()
print(words)  # ['Hello', 'World!', 'This', 'is', 'a', 'test.']

上記の例では、text という文字列が空白文字で区切られ、words というリストに "Hello", "World!", "This", "is", "a", "test." という要素が格納されています。

区切り文字を指定する: 思い通りに分割!

str.split() は、引数に区切り文字を指定することで、空白文字以外でも文字列を分割できます。

text = "apple,banana,orange"
fruits = text.split(",")
print(fruits)  # ['apple', 'banana', 'orange']

ここでは、"," を区切り文字として指定したため、text はカンマで区切られ、fruits リストには "apple", "banana", "orange" が格納されます。

さらに、複数の文字からなる区切り文字も使用できます。

text = "apple***banana***orange"
fruits = text.split("***")
print(fruits)  # ['apple', 'banana', 'orange']

分割回数を制限する: maxsplit 引数の活用

str.split() には、maxsplit という引数があります。 これは、文字列を分割する最大回数を指定するものです。 maxsplit を指定すると、指定した回数だけ分割を行い、残りの文字列は最後の要素としてリストに追加されます。

text = "Hello World! This is a test."
words = text.split(" ", maxsplit=2)
print(words)  # ['Hello', 'World!', 'This is a test.']

この例では、maxsplit=2 と指定したため、text はスペースで最大2回分割され、words リストには "Hello", "World!", "This is a test." が格納されます。

str.splitlines(): 行ごとの分割に特化したメソッド

改行文字 (\n) で文字列を行ごとに分割したい場合は、str.splitlines() メソッドが便利です。 str.splitlines() は、文字列を改行文字で分割し、各行を要素とするリストを返します。

text = "Hello\nWorld!\nThis is a test."
lines = text.splitlines()
print(lines)  # ['Hello', 'World!', 'This is a test.']

str.splitlines() は、改行文字を削除してくれる点も嬉しいポイントです。

str.rsplit(): 右側からの分割

str.split() はデフォルトで左側から分割を行いますが、str.rsplit() を使うと右側から分割を行うことができます。 maxsplit と組み合わせることで、特定の範囲を効率的に分割することができます。

text = "apple,banana,orange,grape"
fruits = text.rsplit(",", maxsplit=2)
print(fruits)  # ['apple,banana', 'orange', 'grape']

str.split() を使う上での注意点

  • 空文字列の扱い: 区切り文字が連続している場合、str.split() は空文字列をリストの要素として含めます。 例えば、"apple,,banana".split(",")['apple', '', 'banana'] を返します。 必要に応じて、空文字列を取り除く処理を追加する必要があります。
  • パフォーマンス: 大量の文字列を分割する場合、str.split() は効率的な処理を提供しますが、非常に複雑なパターンで分割する場合は、正規表現などの他の方法を検討する方が良い場合があります。

まとめ

str.split() は、Pythonで文字列を扱う上で非常に強力なツールです。 基本的な使い方をマスターすれば、様々な場面で文字列の操作を効率化できます。

この記事で紹介した例を参考に、str.split() を色々な場面で活用し、Pythonプログラミングのスキルアップを目指しましょう! str.split() は、あなたのPythonライフをきっと豊かにしてくれるはずです。



< str.join()
コラム一覧に戻る
gzip.open() >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!