イントロダクション
本日のチュートリアルでは、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 initialisation string1 = "Tim
string2 = "Welcome
string3 = "Keyboardu2028Monitoru2029x1cMousex0cCPUx85Motherboardx1eSpeakers
#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
string2 = "Welcome
string3 = "Keyboardu2028Monitoru2029x1cMousex0cCPUx85Motherboardx1eSpeakers
#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()
メソッドについて、それが何を行い、どのように動作するかについて知ることが出来ました。
このトピックに関する質問があれば、以下のコメント欄に投稿してください。