【Python】 リストの文字列要素を連結・結合する(join)

join()は文字列(str)のメソッドの一つで、リストの各要素(文字列)を任意の区切り文字を使って結合することができます。
この関数を使う際の注意点も含めて基本的な使い方についてまとめます。
# 2020/2/5更新

確認した環境

  • OS: Ubuntu 16.04LTS
  • Python 3.7.4

リストの各要素を任意の区切り文字で結合させる

join() を使って、リストの各要素を任意の区切り文字で結合できます。
使い方は以下の通りです。

str.join(iterable)

引数として指定したiterableの各要素を、strで指定した区切り文字で結合します。

>>> l = ['a', 'b', 'c', 'd', 'e']

# スペース区切りの場合
>>> ' '.join(l)
'a b c d e'

区切り文字はスペースだけでなく任意の文字(列)が使えます。例えば”:”区切りにしたい場合は、

>>> l = ['a', 'b', 'c', 'd', 'e']

# ':'で結合
>>> ':'.join(l)
'a:b:c:d:e'

注意!
結合するiterableの各要素は文字列(str型)である必要があります
要素が数値の場合は、例えばmap()関数などでstr型に変換する対処を入れます。

# 要素が数値の場合
>>> l = [1, 2, 3, 4, 5]

# map関数でstr型に変換する
>>> '_'.join(map(str, l))
'1_2_3_4_5'

# 引数の要素がstr型でないとValueErrorとなります
>>> l = [1, 2, 3, 4, 5]
'_'.join(l)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: sequence item 0: expected str instance, int found

<参考>map()関数はこちらの記事でもまとめていますので、ご参照ください。

[Python] リストの各要素のデータ型を変換する:map関数の使いかた

まとめ

join()メソッドを使ってリストの各要素を任意の区切り文字で結合する方法についてまとめました。

Learn more...

書籍でもう少し詳しく学びたい場合はこちらもどうぞ。筆者もかなり参考にさせてもらっています!