Python 文字列をつなげるサンプル(結合)

目的別のおすすめ

シンプル +演算子で結合する(+α)
通常で使用 f文字列
リストからCSV / path リストから文字列にする
大量ループ結合 大量ループで文字列を結合するとき( join)
複数行文字列 複数行の文字列/docstring('''/""")

確認環境:Python 3

+演算子で結合する(+α)

文字列 + 文字列
print('abc' + 'def') # abcdef

a = 'def'
print('abc' +  a) # abcdef

注意:ループ回数が大量で結合を行う場合、通常の+結合は処理が非常に遅くなります。
→その場合は、joinを使用します。

 

文字列を並べて結合する

print('abc''def')  # abcdef

文字列どうし並べて結合できます。

 

文字列と変数を結合する

a = "def"

print('abc',a)  # abc def

文字列と変数の間にカンマ(,)を追加で結合できます。

f文字列

Python 3.6以降で最も推奨される方法です。変数や式を直感的に埋め込めます。

name = "Taro"
age = 20

result = f"My name is {name}. I am {age} years old."
print(result)  # My name is Taro. I am 20 years old.

使い所:変数を文字列に組み込みたいとき、ログ出力、短い文章の作成。

 

書式指定も可能

value = 123.456

print(f"{value:.1f}")  # 123.5 小数1桁
print(f"{value:.2f}")  # 123.46 小数2桁
print(f"{value:.3f}")  # 123.456 小数3桁


num = 1000000

print(f"{num:,}")  # 1,000,000 カンマ区切り

リストから文字列にする

リストからCSVを作成

import csv
import io

items = ["apple", "banana,test", "orange"]

buffer = io.StringIO()
writer = csv.writer(buffer)
writer.writerow(items)

csv_text = buffer.getvalue().strip()
print(csv_text)  # apple,"banana,test",orange

csvモジュール推奨です。
カンマ入りも自動エスケープされます。

 

リストからpathを作成

from pathlib import Path

parts = ["home", "user", "documents", "file.txt"]
path = Path(*parts)
print(path)  # home/user/documents/file.txt

pathlib.Path推奨です。
OSによるパス区切り文字(/ や \)を自動で処理してくれるので、WindowsでもMacでも同じコードが動きます。

大量ループで文字列を結合するとき(.join)

items = ["apple", "banana", "orange"]

result = ", ".join(items)
print(result)  # apple, banana, orange

+のループより大幅に高速です。
.joinは、文字列 ", " が持っている joinメソッドを呼んでいるという意味です。

複数行の文字列/docstring('''/""")

'''文字列'''
"""文字列"""

シングルコーテーションまたはダブルコーテーションを3つ続けます。

a = '''ab
cd
e'''
print(a) # ab cd e

b = """fg
hi
j"""
print(b) # fg hi j

1~4行目は、シングルコーテーション(')の3つを文字列の最初と最後に付与しています。
6~9行目は、ダブルコーテーション(")の3つを文字列の最初と最後に付与しています。

ダブルコーテーションは、docstringとして使用されます。

関連の記事

Python 文字列に変数を埋め込む

△上に戻る