【Python基礎】リスト内の要素(文字列)を結合するjoin関数

  • URLをコピーしました!
目次

join

前回、Pythonのmatplotlibで凡例をグラフエリアの外に表示する方法を紹介しました。

今回はリスト内の要素(文字列)を結合するjoin関数を紹介します。

もし文字列が複数入ったリストがあり、その要素を結合させるにはどうするでしょうか。

とりあえず私ならfor文を使ってこんな感じで結合させます。

list1 = ["a", "b", "c"]

result = ""
for l in list1:
    result = result + l
    
print(result)

実行結果
abc

さらにそれぞれの文字列の間に特定の文字を追加したい場合、ならこんな感じで結合させます。

list1 = ["a", "b", "c"]

sep = ", "
result = ""
for l in list1:
    result = result + l + sep
result = result.rstrip(sep)
    
print(result)

実行結果
a, b, c

今回紹介するjoin関数を知らず、for文で結合させる場合、大体こんな感じになるのではないかなと思います。

このようなリストの要素(文字列)の連結を簡単に行えるのが「join関数」です。

join関数の使い方

join関数の使い方は少し特殊で「”間に入れる文字列”.join(リスト)」とすると、リスト内の要素を「間に入れる文字列」を挟んだ形で連結してくれます。

list1 = ["a", "b", "c"]

print(", ".join(list1))

実行結果
a, b, c

この際に「間に入れる文字列」をなし、つまり「””.join(リスト)」とすると単純にリスト内の要素を結合してくれます。

list1 = ["a", "b", "c"]

print("".join(list1))

実行結果
abc

気をつけること

ただ気をつけるのは引数にできるのはあくまでも「文字列で要素が構成されたリスト」のみです。

例えば数値(int) で構成されたリストの場合はエラーがでます。

list2 = [1, 2, 3]

print("".join(list2))

実行結果
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[15], line 3
      1 list2 = [1, 2, 3]
----> 3 print("".join(list2))

TypeError: sequence item 0: expected str instance, int found

もちろんstr型の数字であれば結合はできますが、計算(足し算)ではないことに注意です。

list3 = ["1", "2", "3"]

print("".join(list3))

実行結果
123

そして文字列と数値(int型など)が混ざったリストでもエラーがでます。

list4 = ["a", 2, "c"]

print("".join(list4))

実行結果
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[17], line 3
      1 list4 = ["a", 2, "c"]
----> 3 print("".join(list4))

TypeError: sequence item 1: expected str instance, int found

bool値(True/False)でもエラーになります。

list5 = ["a", True, "c"]

print("".join(list5))

実行結果
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[19], line 3
      1 list5 = ["a", True, "c"]
----> 3 print("".join(list5))

TypeError: sequence item 1: expected str instance, bool found

ということでリストに文字列として要素が格納されており、それらを結合させたい場合にはjoin関数はなかなか便利だと思いますので、ぜひ活用してみてください。

次回はnumpyを使った行列計算に関して紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次