今回は文字列を区切り文字で結合する方法を紹介します。
join()メソッド
例として、以下のように,
で区切られている文字列を考えてみましょう。
a,b,c
文字列を区切り文字で結合するには、文字列のjoin()
メソッドを使います。
基本的な使い方は下記の通りです。
区切り文字.join(イテラブル)
イテラブル(iterable)とは、リストのように要素を一度に1つずつ返せるオブジェクトのことです。
結果は、各要素を区切り文字で結合した文字列になります。
実際に使ってみましょう。
>>> ",".join(["a", "b", "c"]) 'a,b,c'
今回の場合、区切り文字は,
なので、",".join(...)
としています。
結果は、各要素を区切り文字で結合した文字列 'a,b,c'
となりました。
イテラブルが文字列以外の要素を返す場合
join()メソッドのイテラブルが、文字列以外の要素を返す場合、エラーとなります。
例えば、以下のように文字列と数値が混在するリストをjoin()メソッドに渡してみましょう。
>>> "-".join(["03", 1234, "5678"]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: sequence item 1: expected str instance, int found
TypeErrorになりました。エラーメッセージにexpected str instance, int found
とあるように、文字列(str)を期待したところに数値(int)があったためです。
以下のように、リストの要素がすべて文字列であれば、期待通りに動作します。
>>> "-".join(["03", "1234", "5678"]) '03-1234-5678'
まとめ
- 文字列を区切り文字で結合するには、文字列の
join()
メソッドを使う - イテラブル(リストなど)が文字列以外の要素を返すと、エラー(TypeError)になる