このように見えるいくつかの関数からの出力(長いもの!)があります:
[[(0.0, 1.0, 2.0), (1.0, 2.0, 0.0), (2.0, 1.0, 0.0)], [(1.6324986294474886e-06, 1.000000272083105, 1.9999992744450537), (1.0, 1.9999985559929883, 9.626713411705526e-07), (1.9999957124111243, 1.000000714598146, 9.527975279416402e-07)], ......................, [(0.00016488526381860965, 1.0000274825531668, 1.9999267116402146), (0.9999999810184469, 1.9998541492231847, 9.723903843230245e-05), (1.9995669148822666, 1.000072183688789, 9.62532545797885e-05)]]
出力の構造は好きではありませんが、それを返す関数で使用すると非常に便利です。
しかし、私はこのように見えるように出力をフォーマットする必要があります:
0.0 1.0 2.0 A
1.0 2.0 0.0 B
2.0 1.0 0.0 C
1.6324986294474886e-06 1.000000272083105 1.9999992744450537 A
1.0 1.9999985559929883 9.626713411705526e-07 B
1.9999957124111243 1.000000714598146 9.527975279416402e-07 C
私はこのコードを持っています:
obj = 'A', 'B', 'C'
for n in results():
for z in range(len(results()[0])):
k = n[z], obj[z]
print '\t'.join(map(str, k))
('results' は大きなリストを返す関数の名前です)
それは私にこれを与えます:
(0.0, 1.0, 2.0) A
(1.0, 2.0, 0.0) B
(2.0, 1.0, 0.0) C
(1.6324986294474886e-06, 1.000000272083105, 1.9999992744450537) A
(1.0, 1.9999985559929883, 9.626713411705526e-07) B
(1.9999957124111243, 1.000000714598146, 9.527975279416402e-07) C
このコードの行末に文字 (A、B、または C) を追加しなければ、これを取得できます。
とにかく、あなたの助けを願っています!前もって感謝します!
予期しない問題...私は本当に出力を.csvファイルに書きたいので、印刷の代わりに使用します(今のところ、リストを使用して文字を追加するオプションを選択しました。私にはより明確です)
with open('table.csv', 'wb') as f:
writer = csv.writer(f)
for n in results():
for z in range(len(res[0])):
k = list(n[z])
k.append(obj[z])
writer.writerows ('\t'.join(map(str, k)))
そして、それは実際には正しく機能しません。私はこれしか得られません:
0
.
0
1
.
0
2
.
0
A
.
.
.
奇妙な書式設定が表示されるのに、印刷では表示されないのはなぜですか? 私にはかなり衝撃的です…