【4 weeks challenge – Python】Day 17 リスト型を指定の文字でつなげる “join”

daily_trial

こんにちは、しらすです。

17日目です。本日の習得スキルは「リスト型を指定の文字でつなげる」です!

リスト型を指定の文字でつなげるでできること

例えば、リスト型で格納されたデータをカンマ区切りの文字列に変換しファイルに出力することができます。この場合、出力ファイルの拡張子を.csvにしておけば、エクセルで開くと各セルに文字列を分けて表示することができます。

使い方

#リスト型をCSVにカンマ区切りで出力する
list_ = ['Tom', 'Markus', 'Kumar', 'Ted', 'Marius', 'Jason']
str_ = ','.join(list_)      #各要素を指定の記号(,)でつなげて一つの文字列にする

with open("./day17_csv/sample1.csv", "w") as out_file:
    out_file.writelines(str_)

結果

このようにカンマ区切りでファイルに出力することができました。ちなみに、joinで作成された文字列は以下になります。

おためし編

#二次元のリストを形を保ってcsvに出力する
matrix_ = [
           ['Tom', 'Markus', 'Kumar', 'Ted', 'Marius', 'Jason'],
           ['1234567', '1100000', '1122000', '9900111', '1100222', '0011555'],
           ['09000001111', '09000002222', '09000003333', '09000004444', '09000005555', '09000006666']
          ]
str_ = ''
for list_ in matrix_:    
    str_ = str_ + ','.join(list_) + '\n'

with open("./day17_csv/sample2.csv", "w") as out_file:
    out_file.writelines(str_)

二次元のlistに対しては一行ずつjoinを使って接続していきます。文末は改行(\n)を入れてましょう。作成されたstr_の内容が以下です。

こちらをcsvに出力すると以下のように、形を保ったまま出力することができました。

参考

以下にCSV出力方法を色々とためし結果が記載されていました。

Pythonで一次元リストをテキストファイル(CSV)に書き出す方法の比較 - Qiita
Pythonで一次元リストをテキストファイルに書き出す方法はいろいろあるのですが、どれが一番速いのか思いつく限り試してみました。前提一次元の文字列のリスト>>> list_ = [elemen…

CSVの読み込み速度についてはこちらがわかりやすくまとまっています。読み込みは、並列処理のdaskが早いしメモリ消費も少ないのでおすすめとのこと。

コメント