Pythonを使ってプログラミングを始めたばかりの方が、最初に直面する課題の一つが「文字列の結合」です。単純に複数の文字列を一つにまとめたいだけなのに、思い通りに動かないこともあります。この記事では、Pythonで文字列を結合する基本から応用までの方法を、わかりやすいコード例と一緒に解説します。初心者の方も、復習したい方も、ぜひ最後まで読んでみてください。
文字列の結合とは、複数の文字列を1つにつなげて新しい文字列を作る操作のことです。たとえば "Hello"
と "World"
という文字列を "HelloWorld"
にするような処理が該当します。
Pythonではこの操作を行う方法が複数あり、それぞれ用途や処理速度、可読性などの観点で使い分けが求められます。
もっとも基本的で直感的な方法が +
演算子を使った結合です。
first = "Hello"
second = "World"
result = first + second
print(result) # HelloWorld
この方法は読みやすく、短い文字列を結合する場面で非常によく使われます。ただし、ループ内で繰り返し結合を行うとパフォーマンスが低下する場合があるため注意が必要です。
複数の文字列をまとめて効率よく結合したい場合は join()
メソッドが便利です。
words = ["Hello", "World", "!"]
result = "".join(words)
print(result) # HelloWorld!
この方法は処理速度が速く、ループ内での結合や大量の文字列を扱う場合に推奨されます。
プレースホルダー {}
を使って文字列を整形・結合する方法です。
name = "Taro"
greeting = "Hello, {}!".format(name)
print(greeting) # Hello, Taro!
複数の値を簡単に組み込むことができるため、テンプレート的な用途でよく使われます。
f文字列は、Python 3.6から追加された最も簡潔で読みやすい方法のひとつです。
name = "Hanako"
greeting = f"Hello, {name}!"
print(greeting) # Hello, Hanako!
コードの可読性が非常に高く、変数を直接文字列内に埋め込めるため、現在では主流の書き方です。
過去のPythonコードでよく使われていた書き方です。
name = "Jiro"
greeting = "Hello, %s!" % name
print(greeting) # Hello, Jiro!
今では非推奨ですが、古いコードの読み解きには知っておくと便利です。
ループで文字列を繰り返し結合するなら、以下のようにリストに追加して最後に join()
する方法が最も効率的です。
lines = []
for i in range(5):
lines.append(f"Line {i}")
result = "\n".join(lines)
print(result)
このやり方は、+
演算子を繰り返すよりも高速で、処理の効率が大幅に向上します。
実用的な場面として、複数の文字列を結合してファイルに保存する例も見ておきましょう。
lines = ["Name: Taro", "Age: 25", "City: Tokyo"]
content = "\n".join(lines)
with open("profile.txt", "w") as file:
file.write(content)
このように、ファイル出力と組み合わせることで文字列結合の活用範囲はさらに広がります。
Pythonでは、文字列と数値をそのまま +
で結合しようとするとエラーになります。
age = 30
# print("Age: " + age) # TypeError発生
print("Age: " + str(age)) # 正しく結合できる
このように、数値型や他のオブジェクト型と結合する場合は、str()
などで明示的に文字列に変換する必要があります。
方法 | 特徴 | おすすめの用途 |
---|---|---|
+ 演算子 | シンプルで直感的 | 少数の文字列を結合するとき |
join() | 高速で効率的 | 複数の文字列を一括で結合 |
format() | 柔軟なテンプレート機能 | 複数の値を挿入したいとき |
f文字列 | 簡潔で読みやすい | Python 3.6以降での推奨方法 |
% フォーマット | 旧式だが簡単 | 古いコードの読み書き |
リスト+join | 高速結合の最適解 | 大量の文字列処理やループ中の結合 |
Pythonでは、目的や状況に応じてさまざまな文字列結合方法があります。初心者のうちは +
や f文字列を使って慣れるのがよいですが、処理速度や大量データを意識するなら join()
を使うべきです。コードの可読性とパフォーマンスの両立を意識して、自分に合った方法を選んでください。