Python
1data
というリストを
Python
1f = open('dat.dat', 'a') 2f.writelines(str(data))
で書き出すと
Python
1[数値, 数値, ..., ..., 数値]
以上のように出力されるように改良しました
引き続き[]および,を取り除いてファイルに出力して最後に改行する方法を教えてもらえると助かります
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
Python
1 2# coding: utf-8 3 4l = ['0', [36.8, 31.1, 36.1, 28.5], [0.16, 0.09, 0.09, 0.25]] 5 6new_l = [] 7 8for e in l: 9 t = type(e) 10 if t == type(str()): 11 new_l.append(e) 12 elif t == type(list()): 13 for s in e: 14 new_l.append(str(s)) 15 16print(' '.join(new_l) + '\n')
新しい配列に文字列なら突っ込んで、listなら
要素ごとに新しい配列に突っ込む方法。
python
1# coding: utf-8 2 3import re 4 5l = ['0', [36.8, 31.1, 36.1, 28.5], [0.16, 0.09, 0.09, 0.25]] 6 7print(re.sub(r'[\[\],]', '', ' '.join(map(str, l))))
listを文字列にして、その文字列からかっことカンマを削除する方法。
Python初心者ですが考えてみました。
投稿2017/07/14 14:48
退会済みユーザー
総合スコア0
0
data
の形が [文字列, [数値, 数値, ...], [数値, 数値, ...]]
という決まった形だとすると,data[0]
だけ処理を分けてこう書けます.
python
1ret = "" 2 3for i, x in enumerate(data): 4 if i == 0: 5 ret += x 6 ret += " " 7 else: 8 ret += " ".join(list(map(str, x))) 9ret += "\n" 10 11with open("dat.dat", "a") as f: 12 f.write(ret)
一行で書くとこうです.
python
1with open("dat.dat", "a") as f: 2 f.write(" ".join([x if i == 0 else " ".join(list(map(str, x))) for i, x in enumerate(data)]) + "\n")
投稿2017/07/14 13:36
総合スコア147
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
python
1f.writelines([" ".join([x[0]] + map(str, x[1]) + map(str, x[2])) for x in data])
投稿2017/07/14 08:40
総合スコア930
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/14 13:43 編集
0
自己解決
全て数値にしてjoin,map,strを駆使して解決しました
投稿2017/07/15 01:21
総合スコア23
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。