Pythonのsplitlinesメソッドの使い方|文字列を改行で区切る方法を解説

スポンサーリンク
スポンサーリンク

イントロダクション

本日のチュートリアルでは、Pythonの文字列のsplitlines()メソッドについて説明します。

まず最初に、このメソッドの基本的な定義を見てみましょう。

Python String splitlines() メソッド

Python の文字列 splitlines() は、文字列中の行のリストを、行の境界で分割して返す組み込みメソッドです。

改行は keepends が true でない限り、結果のリストには含まれません。

Python で splitlines() メソッドを使うためのシンタックスは以下のとおりです。

str.splitlines([keepends])

ここで

  • str は、行のリストに分割する必要のある文字列オブジェクトです。
  • keepends を True に設定すると、行の境界線が結果のリスト要素に含まれます。さもなければ、改行文字は含まれない。

改行文字とその説明の表は以下の通りです。

ラインバウンダリーテーブル

Pythonの文字表記について
n ラインフィード
r キャリッジリターン
rrn| キャリッジリターン+ラインフィード|(Python3.0)
v or x0b| Line Tabulation (Python 3.2以降)
f or x0c フォームフィード(Python 3.2以降)
x1c| ファイルセパレーター|||index.
x1d| Group Separator|グループセパレーター
x1e レコードセパレーター
x85 次の行(C1制御コード)
u2028 行の区切り記号
u2029 Paragraph Separator (段落区切り文字)

Python で splitlines() メソッドを操作する

さて、Pythonの splitlines() メソッドの基本的な定義と構文について説明しましたので、いくつかの例を見てみましょう。

これは、このトピックを明確に理解するのに役立つでしょう。

キープエンドなし

前述のように、keepends パラメータを指定しないと、改行や境界文字を除いた分割行のリストが作成されます。

以下の例を見てください。

#String initialisation
string1 = "Tim
Charlie
John
Alan"
string2 = "Welcome

to
Python !"

string3 = "Keyboardu2028Monitoru2029x1cMousex0cCPUx85Motherboardx1eSpeakers
UPS"
 
#without keepends
print(string1.splitlines())
print(string2.splitlines())
print(string3.splitlines())

出力されます。

['Tim', 'Charlie', 'John', 'Alan']
['Welcome', '', 'to', 'Python !']
['Keyboard', 'Monitor', '', 'Mouse', 'CPU', 'Motherboard', 'Speakers', 'UPS']

ここで

  • 様々な単語を異なる改行コードで区切った3つの文字列を宣言しています。
  • それぞれを組み込みの splitlines() メソッドに渡し、keepends をデフォルト(false)に設定します。そして、その結果の分割された行のリストを表示します。

出力からわかるように、keependsが設定されていないため、分割されたすべての行には、行の境界線または境界文字が含まれていません。

文字列2については、'Askpythont'は境界文字ではない(表にない)ので、'Askpythont'という単語とともに'view'が含まれていることがわかります。

したがって、出力は正当化されます。

キープエンド付き

keepends パラメータに True を指定すると、分割された行にそれぞれの改行記号が含まれるようになります。

前のコード(keependsなし)を、Pythonの文字列 splitlines() メソッド内で keepends パラメータを True に設定することで変更してみましょう。

出力結果をよく見て、前との違いに気づいてみてください。

#String initialisation
string1 = "Tim
Charlie
John
Alan"
string2 = "Welcome

to
Python !"

string3 = "Keyboardu2028Monitoru2029x1cMousex0cCPUx85Motherboardx1eSpeakers
UPS"
 
#with keepends
print(string1.splitlines(keepends=True))
print(string2.splitlines(keepends=True))
print(string3.splitlines(keepends=True))

結果は以下の通りです。

['Tim
'
, 'Charlie
'
, 'John
'
, 'Alan']
['Welcome
'
, '
'
, 'to
'
, 'Python !']
['Keyboardu2028', 'Monitoru2029', 'x1c', 'Mousex0c', 'CPUx85', 'Motherboardx1e', 'Speakers
'
, 'UPS']

予想通り、同じ文字列に対して splitlines() の出力にはすべての境界文字が含まれています。

まとめ

この記事では、組み込みの Python 文字列 splitlines() メソッドについて、それが何を行い、どのように動作するかについて知ることが出来ました。

このトピックに関する質問があれば、以下のコメント欄に投稿してください。

タイトルとURLをコピーしました