Pythonの文字列の改行方法と便利な操作まとめ

ここでは、Pythonの文字列の改行について、最低限知っておくべき知識と、改行を活用した文字列操作について解説しています。

改行の方法は複数ありますので、ここでしっかりと確認しておきましょう。

目次

1. Pythonの文字列の改行

1.1.「\」コード上のみで改行

コード上だけで改行したい場合は「\」を使います。

In [1]:
#「\」はコード上でのみ改行したい時に使います。
text = "text1\
 text2\
 text3"
print(text)
text1 text2 text3

1.2. 括弧 (),{},[] でコード内で自由に改行

まず、Pythonには、複数の文字列を続けて書くと、自動的に連結して1つの文字列になるという特徴があります。

In [1]:
#複数の文字列を続けて書くと自動的に連結されます。
text = "text1" "text2"
print(text) 
text1text2

この特徴と、括弧 ()、{}、[] を利用すると、括弧の中では自由に改行ができます。

In [1]:
text = ("text1"
             "text2"
             "text3")
print(text)
text1text2text3

1.3.「\n」print 出力時に改行

print で出力した時に改行を反映したい場合は「\n」を使います。

In [1]:
#出力結果を改行したい場合は「\n」を入力します。
text = "text1\ntext2\ntext3"
print(text)
text1
text2
text3

1.4. 「\」「\n」コード上でも print 出力時でも改行

「\」と「\n」を組み合わせると、次のような文字列を作ることができます。

これも、「複数の文字列を続けて書くと、自動的に連結して1つの文字列になる」という Python の特徴を利用したものです。

In [1]:
#次のように書くこともできます。
text = "text1\n"\
            "text2\n"\
            "text3"
print(text)
text1
text2
text3

1.5. 「””” “””」コード上でも print 出力時でも改行

前後を、クオート(「”」or「’」)3つで挟むと、コード中の改行が、print 出力時にも反映されます。

In [1]:
#クオート3つずつで前後を挟むと改行が反映されます。
text = """text1
text2
text3"""
print(text)
text1
text2
text3

以下のように、行頭を揃えたい場合もあると思いますが、そうすると上下に余分な空白ができてしまいます。

In [1]:
#行頭を揃えようとすると上下にスペースができます。
text = """
text1
text2
text3
"""
print(text) 
 
text1
text2
text3

これは、「\」と組み合わせることで、行頭を揃えることができます。

In [1]:
#「\」を使うと回避することができます。
text = """\
text1
text2
text3"""
print(text)
text1
text2
text3

インデントを入れることもできます。

In [1]:
#インデントしたい場合は次のように書きます。
text = """\
text1
    text2
        text3"""
print(text)
text1
    text2
        text3

2. 改行を活用した様々な文字列操作

2.1. 「join」リスト内の文字列を改行して連結/結合

文字列メソッドの join() を使うと、リストの文字列を、1つの文字列として連結/結合することができます。その時に、改行文字である「\n」を区切り文字にすると、リストの要素ごとに改行して出力することができます。

In [1]:
list = ["text1", "text2", "text3"]
string = "\n".join(list)
print(string)
text1
text2
text3

joinメソッドは「Pythonの文字列の連結/結合」の中でも、使用方法を解説していますので、ぜひご覧ください。

2.2. 「splitlines」文字列を改行ごとに分割してリスト化

文字列メソッドの splitlines() を使うと、文字列を改行ごとに分割してリスト化することができます。join() メソッドと反対ですね。

In [1]:
string = "text\ntext2\ntext3"
list = string.splitlines()
print(list)
['text', 'text2', 'text3']

似たメソッドに split()メソッドがあります。使い方は、「Pythonの文字列を分割する方法」で解説しています。

splitメソッドは引数に何も入力しない場合、改行「\n」だけでなく、タブ「\t」も消去します。splitlines()は改行「\n」だけを消去するところに違いがあります。

以下で確認しておきましょう。

In [1]:
#splitメソッドはタブ「\t」も自動で区切る。
string = "text\ntext2\ttext3"
list = string.split()
print(list)
['text', 'text2', 'text3']
In [2]:
#splitlinesメソッドはタブ「\t」は区切らない。
string = "text\ntext2\ttext3"
list = string.splitlines()
print(list)
['text', 'text2\ttext3']

2.3. 「splitlines」「join」を組み合わせた「\n」の削除・置換

splitlines() メソッドと join() メソッドを組み合わせて使うと、改行コードを削除したり、他の文字に置換したりすることができます。

In [1]:
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)
text1
text2
text3
 
['text1', 'text2', 'text3']
 
text1 text2 text3
 
text1,text2,text3
 
text1
text2
text3

これと同じようなことをしてくれるものに replace() メソッドがあります。「Pythonの文字列を置換する方法」で解説していますのでご覧ください。

また、改行を削除する時は、不要な文字列を削除するstrip()メソッドも便利です。こちらは、「Pythonの文字列を削除する方法」で解説しています。

3. まとめ

いかがだったでしょうか。

改行に関する操作を行いたい場面は、多く出てくると思いますので、ぜひ覚えていてくださいね。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる