Python学習講座

PythonエンジニアによるPython3学習サイト

TIPS

リストをカンマ区切りの文字列に変換する


joinメソッドmap関数+str関数

データ分析時、途中結果が格納されたlistをCSVやTSVでダンプしたい、という場合がよくあります。

listの要素が文字列だけの場合

文字列だけの場合は以前学習したjoinメソッドを使用すればよいでしょう。(文字列操作の基本

data = ['aaa', 'bbb', 'ccc']
data_str = ",".join(data) # aaa,bbb,ccc

ですが、これだけだと、文字列以外を含んでいる場合は「TypeError: sequence item : expected str instance」が発生します。

listの要素が文字列以外を含む場合

上のTypeErrorは要素がstrオブジェクトではないために発生しています。つまり、それぞれの要素に対しstr関数でstrオブジェクトに変換すればよいのです。この要素ごとの変換にはmap関数を使用すると楽でしょう。以下のようにします。

data = ['aaa', 'bbb', 100, 200, 300]

data_str = ",".join(map(str, data)) # aaa,bbb,100,200,300 

少し複雑に見えるかもしれませんが、join、map、strを組み合わせているだけですので順番に確認すれば理解できるかと思います。便利な上、よく使う方法なので是非知っておいてください。

-TIPS
-