Python joinの使い方

この記事のポイント

Pythonのjoinは、複数の文字列をひとつに結合するメソッドです。シンプルでありながら実用性が高く、プログラミングの現場で幅広く活用されています。

この記事を読むと、次のようなことが身に付きます。

  • joinメソッドの基礎知識と仕組みが理解できる
  • 区切り文字を使った基本的な文字列結合が書けるようになる
  • ファイルパス生成やデータ整形などの実務的なコード例がわかる

基礎から応用までの手順を確かめて、開発に役立つスキルを整えていきましょう。

目次

joinとは?

joinとは、リストタプルなどに含まれる複数の文字列要素をまとめて、ひとつの文字列に結合するPythonの組み込みメソッドです。

日常生活で例えると、バラバラになったカードを紐で結んで一本の線にするイメージです。

使い方の特徴として「連結部分に挟む区切り文字」側から呼び出します。

例えばカンマとスペースを区切り文字にする場合は「", ".join(リスト)」という形で記述します。

書き方に少し違和感を覚えるかもしれませんが、慣れると短くすっきり書けます。

forループで文字列をひとつずつ足していく方法に比べて処理が速く、コードも読みやすくなります。

注意点として、結合する要素はすべて文字列型にする必要があります。

数値などのデータが含まれる場合は、str関数で事前に文字列へ変換しておきましょう。

joinの特徴

  • 指定した区切り文字を挟みながら複数の文字列を効率よくひとつに連結できる
  • 文字列以外の型が含まれるとエラーになるため事前にstr関数で変換が必要になる
  • forループで連結するよりも実行速度が速くコードの可読性も向上する

データ整理やテキスト出力など、プログラミングのさまざまな場面で活用できる便利な機能です。

【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング

基本構文

joinメソッドの基本的な書き方は以下のとおりです。

区切り文字.join(イテラブル)

イテラブルとは、要素を順番に取り出せるオブジェクトのことです。リストやタプル、集合(set)、文字列などが該当します。joinの引数に指定できるのは、要素がすべて文字列であるイテラブルに限られます。

以下に基本的な使い方を示すコード例を3つ紹介します。

例1:カンマ区切りで結合する

animals = ["イヌ", "ネコ", "ウサギ"] result = ", ".join(animals) # カンマとスペースで要素を結合 print(result)

出力結果

イヌ, ネコ, ウサギ

この例では、リストに含まれる複数の動物名をカンマとスペースで連結した結果を出力しています。まず、animalsというリストを定義し、", "を区切り文字に指定してjoinメソッドを実行します。各要素の間に指定した区切り文字が挟み込まれ、ひとつの整った文字列へと整形されます。

例2:区切り文字なしで結合する

letters = ["P", "y", "t", "h", "o", "n"] result = "".join(letters) # 区切り文字なしで直接結合 print(result)

出力結果

Python

この例では、1文字ずつ分かれたアルファベットのリストを隙間なく連結した結果を出力しています。まず、文字列のリストを用意し、空文字""を区切り文字としてjoinメソッドを呼び出します。要素同士の間隔を空けずに直接結合するため、バラバラの文字を1つの単語へまとめる処理を行っています。

例3:改行区切りで結合する

lines = ["1行目", "2行目", "3行目"] result = "\n".join(lines) # 改行コードで要素を結合 print(result)

出力結果

1行目
2行目
3行目

この例では、リストの各要素を改行しながら出力した結果を表示しています。まず、各行のテキストを格納したリストを作成し、改行コードである"\n"を区切り文字に指定して結合します。一連のデータを順に改行させながら配置することで、複数行からなる文章を簡単に組み立てています。

実用例

ここではjoinを実際のコードに活用する例を紹介します。それぞれの状況に応じたコードを記述しているため、実際の開発でも応用しやすい内容です。

動物名リストを区切り文字で結合する

複数の動物名が格納されたリストを、読みやすい形式の文字列に変換する例です。リストの内容を画面に表示したり、ログに記録したりする場面で役立ちます。

animals = ["ライオン", "ゾウ", "キリン", "チーター"] result = " / ".join(animals) # スラッシュを挟んで動物名を結合 print(result)

出力結果

ライオン / ゾウ / キリン / チーター

この例では、リスト内の要素をスラッシュ記号で挟みながらひとつの文字列へ整形した結果を出力しています。まず、4種類の動物名をまとめた配列を準備し、前後スペース付きの" / "を区切り文字に設定します。各要素が分かりやすく区切られ、データの数が増減しても安定して処理が実行されます。

空白区切りで文を組み立てる

単語をリストで管理しておき、joinで文章として組み立てる例です。単語単位でデータを扱う場面に向いています。

words = ["ペンギンは", "南極に", "生息する", "鳥です"] sentence = " ".join(words) # 半角スペースで単語をつなぎ合わせる print(sentence)

出力結果

ペンギンは 南極に 生息する 鳥です

この例では、分散した単語リストを半角スペースで繋いで1つの文を作成した結果を表示しています。まず、文節ごとに分けた文字列を定義し、" "を区切り文字に採用します。要素ごとに独立した状態を保てるため、語順の入れ替えや単語の置換といった操作もスムーズに行えます。

ファイルパスを動的に生成する

フォルダ名やファイル名をリストで管理し、joinでパス文字列を組み立てる例です。OSによってパスの区切り文字が異なる場合でも、区切り文字の部分を変えるだけで対応できます。

path_parts = ["data", "animals", "birds", "penguin.txt"] file_path = "/".join(path_parts) # スラッシュでつないでファイルパスを作成 print(file_path)

出力結果

data/animals/birds/penguin.txt

この例では、階層構造の名称をスラッシュで連結してファイルまでの経路を示した結果を出力しています。まず、フォルダやファイル名の文字列を順に並べた配列を作成し、区切り文字"/"を用いて結合します。階層構造の構成要素を個別に保持することで、特定のディレクトリ名の変更にも柔軟に対応可能です。

CSVライクな出力を作成する

データをカンマ区切りの文字列として整形する例です。手軽なデータ出力の際に活用できます。

header = ["名前", "種類", "生息地"] row = ["クマ", "哺乳類", "森林"] print(",".join(header)) # 名前,種類,生息地(ヘッダー行を作成) print(",".join(row)) # クマ,哺乳類,森林(データ行を作成)

出力結果

名前,種類,生息地
クマ,哺乳類,森林

この例では、項目名とデータをそれぞれカンマで結合して表形式のように並べた結果を出力しています。まず、ヘッダー情報とデータ本体を個別のリストとして準備し、","を用いて文字列化します。整列された行を順番に出力することで、カンマ区切りフォーマットのテキストを生成しています。

条件に一致した要素だけを結合する

リスト内包表記と組み合わせることで、条件を満たす要素だけを抽出してから結合する例です。

animals = ["イヌ", "ネコ", "トリ", "サカナ", "カメ"] short_names = [a for a in animals if len(a) <= 2] # 2文字以下の動物名だけを抽出 result = "・".join(short_names) # 中点で要素を結合 print(result)

出力結果

イヌ・ネコ・トリ・カメ

この例では、文字数の条件で絞り込んだ要素だけを中点記号で繋ぎ合わせた結果を出力しています。まず、元のリストから2文字以下の名称のみを内包表記で抽出し、新しいリストを作成します。選択された要素に対して"・"を適用して結合することで、特定条件に絞った文字列を形成します。

辞書のキーを結合する

辞書のキー一覧を取り出して、ひとつの文字列にまとめる例です。設定項目や列名を一覧表示したいときなどに使えます。

animal_info = { "name": "キツネ", "type": "哺乳類", "habitat": "草原・森林", } keys = ", ".join(animal_info.keys()) # 辞書のすべてのキーを取得して結合 print(keys)

出力結果

name, type, habitat

この例では、辞書データに登録されている項目名のみを集めて1行に連結した結果を出力しています。まず、複数のキーと値を持つ辞書オブジェクトを作成し、keysメソッドでキーの一覧を取得します。それらを", "でつなぎ合わせることで、項目名の一覧をわかりやすく抽出しています。

改行区切りで複数行テキストを生成する

メッセージや通知文など、複数の行からなるテキストを組み立てる例です。テンプレート的な文章を動的に生成したいときに役立ちます。

lines = [ "【動物情報】", "名前:シロクマ", "分類:哺乳類", "生息地:北極圏", ] message = "\n".join(lines) # 改行コードで各項目をつないでメッセージを作成 print(message)

出力結果

【動物情報】
名前:シロクマ
分類:哺乳類
生息地:北極圏

この例では、箇条書きのような複数行のテキストを1つの変数として整形した結果を表示しています。まず、表示したい各行の文章をリスト形式で用意し、改行文字"\n"を指定して連結します。一行ごとの要素が垂直に整列され、見やすい文面を構築できます。

まとめ

joinは、Pythonで文字列を結合するための基本的かつ実用的なメソッドです。区切り文字を自由に指定できる柔軟さと、リスト内包表記などの書き方との親和性の高さから、多様な場面で活用されます。

Python joinが活躍する場面

  • リストをカンマやスラッシュなどの区切り文字で文字列化するとき
  • 条件で絞り込んだ要素を抽出してひとつの文字列にまとめるとき
  • 複数行の文章や構造化されたメッセージを動的に作成するとき

joinを用いる上で、押さえておきたいポイントを覚えておきましょう。

重要なポイント

  • 結合する要素はすべて文字列型で揃える必要がある
  • 数値などが混在する場合はstr関数で事前に変換する
  • 空文字や改行文字など目的にあわせて区切り文字を選択する 
  • forループによる連結より処理が高速で読みやすくなる

初めてPythonを学ぶ方も、紹介したコード例を参考に実際に動かして試してみてください。

基本の書き方を習得して、洗練されたプログラムを作成していきましょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaトップ
  2. リファレンス
  3. Pythonのリファレンス記事一覧
  4. Python joinの使い方