私はファイルに書き込む必要がある幅44カラムのデータテーブルを持っています。私は書きたくない:FortranでにはPythonで複数の書式指定子がありますか?
outfile.write("%i,%f,%f,$f ...)\n" % (i, a,b,c ...))
を使えば、簡単に複数のフォーマット指定子を指定することができます。
write (*,"(3f8.3)") a,b,c
はPythonで同様の機能はありますか?
私はファイルに書き込む必要がある幅44カラムのデータテーブルを持っています。私は書きたくない:FortranでにはPythonで複数の書式指定子がありますか?
outfile.write("%i,%f,%f,$f ...)\n" % (i, a,b,c ...))
を使えば、簡単に複数のフォーマット指定子を指定することができます。
write (*,"(3f8.3)") a,b,c
はPythonで同様の機能はありますか?
>>> "%d " * 3
'%d %d %d '
>>> "%d " * 3 % (1,2,3)
'1 2 3 '
あなたはおよそ
format= "%i" + ",%f"*len(row) + "\n"
outfile.write(format % ([i]+row))
を求めているが、まったく同じではありませんが、あなたはこのような何か試すことができます:私はそれがにはるかに良いと思う
values=[1,2.1,3,4,5] #you can use variables instead of values of course
outfile.write(",".join(["%f" % value for value in values]));
注意を
outfile.write(", ".join(map(str, row)))
...そうではありませんあなたが求めているのですが、いくつかの点で優れています。
投稿のおかげで、私はこれを知らなかった。 print "%d" * 3%(1,2,3) – PTBNL
*演算子は書式指定子に固有ではないことに注意してください。先行するシーケンスをX回複製するようにPythonに指示します。文字列はシーケンスなので、フォーマット指定子は文字列だけです... –
@ChrisB .: "_duplicate X times_"ではなく、 "_multiply X times_"と思っています:前者は%d "* 3"は '(("% "* 2)* 2)* 2)と等しくなります。 – Tadeck