イントロダクション
本日のチュートリアルでは、Pythonの文字列のsplitlines()メソッドについて説明します。
まず最初に、このメソッドの基本的な定義を見てみましょう。
Python String splitlines() メソッド
Python の文字列 splitlines() は、文字列中の行のリストを、行の境界で分割して返す組み込みメソッドです。
改行は keepends が true でない限り、結果のリストには含まれません。
Python で splitlines() メソッドを使うためのシンタックスは以下のとおりです。
str.splitlines([keepends])
|
ここで
- str は、行のリストに分割する必要のある文字列オブジェクトです。
- keepends を
Trueに設定すると、行の境界線が結果のリスト要素に含まれます。さもなければ、改行文字は含まれない。
改行文字とその説明の表は以下の通りです。
この記事もチェック:Pythonでstripメソッドを使って文字列をトリミングする3つの方法
ラインバウンダリーテーブル
| 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 initialisationstring1 = "Tim
string2 = "Welcome
string3 = "Keyboardu2028Monitoru2029x1cMousex0cCPUx85Motherboardx1eSpeakers
#without keependsprint(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 initialisationstring1 = "Tim
string2 = "Welcome
string3 = "Keyboardu2028Monitoru2029x1cMousex0cCPUx85Motherboardx1eSpeakers
#with keependsprint(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() メソッドについて、それが何を行い、どのように動作するかについて知ることが出来ました。
このトピックに関する質問があれば、以下のコメント欄に投稿してください。