ここでは、Pythonの文字列の改行について、最低限知っておくべき知識と、改行を活用した文字列操作について解説しています。
改行の方法は複数ありますので、ここでしっかりと確認しておきましょう。
1. Pythonの文字列の改行
1.1.「\」コード上のみで改行
コード上だけで改行したい場合は「\」を使います。
#「\」はコード上でのみ改行したい時に使います。
text = "text1\
text2\
text3"
print(text)
1.2. 括弧 (),{},[] でコード内で自由に改行
まず、Pythonには、複数の文字列を続けて書くと、自動的に連結して1つの文字列になるという特徴があります。
#複数の文字列を続けて書くと自動的に連結されます。
text = "text1" "text2"
print(text)
この特徴と、括弧 ()、{}、[] を利用すると、括弧の中では自由に改行ができます。
text = ("text1"
"text2"
"text3")
print(text)
1.3.「\n」print 出力時に改行
print で出力した時に改行を反映したい場合は「\n」を使います。
#出力結果を改行したい場合は「\n」を入力します。
text = "text1\ntext2\ntext3"
print(text)
1.4. 「\」「\n」コード上でも print 出力時でも改行
「\」と「\n」を組み合わせると、次のような文字列を作ることができます。
これも、「複数の文字列を続けて書くと、自動的に連結して1つの文字列になる」という Python の特徴を利用したものです。
#次のように書くこともできます。
text = "text1\n"\
"text2\n"\
"text3"
print(text)
1.5. 「””” “””」コード上でも print 出力時でも改行
前後を、クオート(「”」or「’」)3つで挟むと、コード中の改行が、print 出力時にも反映されます。
#クオート3つずつで前後を挟むと改行が反映されます。
text = """text1
text2
text3"""
print(text)
以下のように、行頭を揃えたい場合もあると思いますが、そうすると上下に余分な空白ができてしまいます。
#行頭を揃えようとすると上下にスペースができます。
text = """
text1
text2
text3
"""
print(text)
これは、「\」と組み合わせることで、行頭を揃えることができます。
#「\」を使うと回避することができます。
text = """\
text1
text2
text3"""
print(text)
インデントを入れることもできます。
#インデントしたい場合は次のように書きます。
text = """\
text1
text2
text3"""
print(text)
2. 改行を活用した様々な文字列操作
2.1. 「join」リスト内の文字列を改行して連結/結合
文字列メソッドの join() を使うと、リストの文字列を、1つの文字列として連結/結合することができます。その時に、改行文字である「\n」を区切り文字にすると、リストの要素ごとに改行して出力することができます。
list = ["text1", "text2", "text3"]
string = "\n".join(list)
print(string)
joinメソッドは「Pythonの文字列の連結/結合」の中でも、使用方法を解説していますので、ぜひご覧ください。
2.2. 「splitlines」文字列を改行ごとに分割してリスト化
文字列メソッドの splitlines() を使うと、文字列を改行ごとに分割してリスト化することができます。join() メソッドと反対ですね。
string = "text\ntext2\ntext3"
list = string.splitlines()
print(list)
似たメソッドに split()メソッドがあります。使い方は、「Pythonの文字列を分割する方法」で解説しています。
splitメソッドは引数に何も入力しない場合、改行「\n」だけでなく、タブ「\t」も消去します。splitlines()は改行「\n」だけを消去するところに違いがあります。
以下で確認しておきましょう。
#splitメソッドはタブ「\t」も自動で区切る。
string = "text\ntext2\ttext3"
list = string.split()
print(list)
#splitlinesメソッドはタブ「\t」は区切らない。
string = "text\ntext2\ttext3"
list = string.splitlines()
print(list)
2.3. 「splitlines」「join」を組み合わせた「\n」の削除・置換
splitlines() メソッドと join() メソッドを組み合わせて使うと、改行コードを削除したり、他の文字に置換したりすることができます。
s = "text1\ntext2\ntext3"
print(s)
s_1st = s.splitlines()
print(s_1st)
s_2nd = " ".join(s.splitlines())
print(s_2nd)
s_3rd = ",".join(s.splitlines())
print(s_3rd)
s_4th = "\n".join(s.splitlines())
print(s_4th)
これと同じようなことをしてくれるものに replace() メソッドがあります。「Pythonの文字列を置換する方法」で解説していますのでご覧ください。
また、改行を削除する時は、不要な文字列を削除するstrip()メソッドも便利です。こちらは、「Pythonの文字列を削除する方法」で解説しています。
3. まとめ
いかがだったでしょうか。
改行に関する操作を行いたい場面は、多く出てくると思いますので、ぜひ覚えていてくださいね。
コメント