Python文字列を連結・結合する方法 – +演算子とjoinの使い分け
+演算子による文字列連結
最も直感的な文字列連結方法は+演算子を使用することです。
基本的な連結
# 2つの文字列を連結
text1 = "Hello"
text2 = "World"
result = text1 + " " + text2
print(result) # Hello World
# 複数文字列の連結
first = "Python"
second = "は"
third = "楽しい"
message = first + second + third
print(message) # Pythonは楽しい
文字列と数値の連結
# 数値を文字列に変換してから連結
name = "田中"
age = 25
message = name + "さんは" + str(age) + "歳です"
print(message) # 田中さんは25歳です
join()メソッドによる効率的な連結
複数の文字列を連結する場合、join()メソッドが効率的です。
リストの文字列を連結
# リストの要素を連結
words = ["Python", "Java", "JavaScript"]
result = ", ".join(words)
print(result) # Python, Java, JavaScript
# 空文字で連結
letters = ["A", "B", "C"]
result = "".join(letters)
print(result) # ABC
改行で連結
# 改行文字で連結
lines = ["1行目", "2行目", "3行目"]
text = "\n".join(lines)
print(text)
# 1行目
# 2行目
# 3行目
f-string(フォーマット文字列)による連結
Python 3.6以降で推奨される方法です。
基本的なf-string
name = "山田"
age = 30
city = "東京"
# f-stringを使用
message = f"{name}さんは{age}歳で、{city}在住です"
print(message) # 山田さんは30歳で、東京在住です
# 計算結果も埋め込み可能
x = 10
y = 20
result = f"{x} + {y} = {x + y}"
print(result) # 10 + 20 = 30
書式指定付きf-string
# 小数点の桁数指定
price = 1234.567
formatted = f"価格: ¥{price:.2f}"
print(formatted) # 価格: ¥1234.57
# 0埋め
number = 42
formatted = f"番号: {number:05d}"
print(formatted) # 番号: 00042
format()メソッドによる連結
基本的なformat使用
# インデックス指定
template = "{0}さんは{1}歳です"
message = template.format("佐藤", 28)
print(message) # 佐藤さんは28歳です
# キーワード指定
template = "{name}さんの職業は{job}です"
message = template.format(name="鈴木", job="エンジニア")
print(message) # 鈴木さんの職業はエンジニアです
パフォーマンス比較と使い分け
大量文字列連結のパフォーマンス
import time
# 大量の文字列連結比較例
strings = ["文字列" + str(i) for i in range(1000)]
# join()メソッド(推奨)
start = time.time()
result1 = "".join(strings)
time1 = time.time() - start
# +演算子(非効率)
start = time.time()
result2 = ""
for s in strings:
result2 += s
time2 = time.time() - start
print(f"join(): {time1:.4f}秒")
print(f"+演算子: {time2:.4f}秒")
使い分けの指針
# 2-3個の文字列連結: +演算子でOK
simple = "Hello" + " " + "World"
# 動的な値の埋め込み: f-string推奨
name = "田中"
age = 25
dynamic = f"{name}さんは{age}歳"
# 多数の文字列連結: join推奨
many_strings = ["a", "b", "c", "d", "e"]
joined = "".join(many_strings)
# リストから条件付き連結
numbers = [1, 2, 3, 4, 5]
even_str = ", ".join(str(n) for n in numbers if n % 2 == 0)
print(even_str) # 2, 4
実用的な活用例
CSVデータの生成
def create_csv_line(data):
return ",".join(str(item) for item in data)
# 使用例
row_data = ["田中", 25, "東京", "エンジニア"]
csv_line = create_csv_line(row_data)
print(csv_line) # 田中,25,東京,エンジニア
HTMLタグの生成
def create_html_list(items):
list_items = [f"<li>{item}</li>" for item in items]
return f"<ul>{''.join(list_items)}</ul>"
# 使用例
fruits = ["りんご", "バナナ", "オレンジ"]
html = create_html_list(fruits)
print(html)
まとめ
Python文字列連結には複数の方法があり、用途に応じて使い分けることが重要です。少数の文字列なら+演算子、動的な値の埋め込みにはf-string、多数の文字列連結にはjoin()メソッドを使用することで、効率的で読みやすいコードが書けます。
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座