Pythonでリストの要素の文字列を結合する方法。joinメソッドの基本的な使い方の解説

【Pythonの基本】リストの文字列とjoinメソッドの使い方の基本を解説

今回のPython初心者・入門講座は、文字列を扱うjoin()メソッドの基本的な使い方を解説します。Pythonでリストを作成し、そのリストの各要素の文字列をつなげて表示してみようという記事です。

文字列を結合するjoin()メソッドの基本構文

文字列.join(イテラブルなオブジェクト)

joinメソッドは文字列を結合してくれるものですが、実は結合する要素の間に挟む文字列を指定できます。それが、joinメソッドにある文字列です。

すなわち、上の構文を別の書き方にすると、

接着剤.join(結合される部品の集まり)

また、上記「結合される部品の集まり」であるjoinメソッドの引数はイテラブルなオブジェクトです。

イテラブルというのは英語の単語iterableで、日本語では「反復可能な、繰り返しのある」という意味です。

Pythonではイテラブルなオブジェクトの例として代表的なものは

  • リスト
  • 辞書
  • タプル(tupple)
  • 文字列
  • map

などなどです。他にもいくつかあります。

このイテラブルなオブジェクト(イテレータといいます)についてはまた後日にその基本的な考え方を解説する記事を書いてみたいと思います。今は「イテラブルなオブジェクトとは、リストや辞書など」と覚えておいてください。

具体例

では実際にjoinメソッドを使ってみましょう。今回は次のコードを作りました。

アニメリスト=["ライジンオー", "ゴウザウラー", "マイトガイン", "ジェイデッカー"]

print(アニメリスト)

#方法1
for i in range(len(アニメリスト)):
    print(アニメリスト[i])


#方法2
print("\n".join(アニメリスト))

まずは新しいリスト「アニメリスト」を作ります。

アニメリスト=["ライジンオー", "ゴウザウラー", "マイトガイン", "ジェイデッカー"]

え?日本語?普通は英語で「new_list」とかにするんじゃないの?と思われるでしょうが、実はPythonは変数の名前や関数の名前に普通に日本語も使えます。よって今回は日本語にしてみました。

このリストの構造はこうなっています。

要素の順番 要素の中身
0ライジンオー
1ゴウザウラー
2マイトガイン
3ジェイデッカー

リストは最初の項目が「ゼロ番」から始まるので、上表ではゼロを最初の要素の順番になっています。

print(アニメリスト)

次にこれで、作ったリスト「アニメリスト」を確認の意味をこめて表示しています。この部分が不要な場合はコメントアウトするか、削除してください。

#方法1
for i in range(len(アニメリスト)):
    print(アニメリスト[i])

そしてまずjoinメソッドを使わない方法として、for文を使ったものを作ってみました。

len(アニメリスト))

この部分でアニメリストの要素の個数を取得します。個数は4つなので4という数字を得られます。

そうするとrange関数が、range(4)となります。その結果、「0、1、2、3」という4つの整数を得られます。これら4つの数字が順番に変数iへ代入され、print(アニメリスト[i])が順番に実行されます。

この実行の様子をiの値に応じてまとめると、

iの値 アニメリスト[i]のデータ
0ライジンオー
1ゴウザウラー
2マイトガイン
3ジェイデッカー

となります。これらの作品名が順番に連続して出力されます。縦に並んで表示されます。それが下の画像です。

Python入門者・初心者に向けた解説

さていよいよ今回の目玉、joinメソッドです。

#方法2
print("\n".join(アニメリスト))

joinメソッドの書き方をもう一度確認しますが、

接着剤.join(結合される部品の集まり)

こうでした。今回は、「アニメリスト」というリストが結合される部品(文字列)の集まりです。上述のようにPythonにおけるリストはイテラブルなオブジェクトです。

そして接着剤に、

\n

という改行文字を指定しています。これが挟まれることで改行して表示されることになります。改行文字を指定しなければならないということではなく、当然いろんな文字列を接着剤として設定できます。いろいろ試して見てください。

さてこのようにjoinメソッドを使った結果、

ライジンオー\nゴウザウラー\nマイトガイン\nジェイデッカー

という結果が得られ、それをprint()を使って出力すると、それぞれの文字列が順番に改行されて表示されます。次の画像を見てください。

Python初心者・入門講座

Windowsのコマンドプロンプト上で上記のコードを実行するとこのように出力されます。方法1でも方法2でも同じ見た目で表示されていますね。

方法1でforを使った場合はprint()が4回実行されることになりますが、方法2では、

Python入門者・初心者に向けた解説

というそもそも改行を設定されたデータを1つにまとめて1度に表示しています。つまりprin()が実行されるのは1回だけです。

こういった違いがあります。今回のような簡単すぎて短すぎるプログラムではどちらの方法が、パソコンへの負担が少ない(処理速度が速い)のかわかりませんが、大規模なプログラムになるほどどういった方法を選ぶのかで処理速度に違いが出てくるかもしれません。

以上、文字列を扱うときにちょっと(かなり?)便利なjoin( )メソッドの基本の解説でした。

やっぱりプログラミングは独学だとわかりにくいですよね、そこでスクールや動画による解説を利用しましょう!

Tech Academy

厚切りジェイソンのCMでおなじみのプログラミングスクール。自宅でオンライン受講OK。現役のプロが一人一人に専属メンターになってくれ、質問すればすぐに回答。転職保証あり

Udemy

世界最大級のオンライン学習動画サービス。AI・データサイエンスなど最先端のプログラミング講座からビジネススキル講座まで10万以上の講座から選び放題。講師に掲示板から直接に質問もできる。