2017-06-20 16 views
1

から同じライン上にpythonで浮動小数点数をフォーマットします。だから、私は次のコードを書いた:は、私は次のようにfloatのリストを持っているリスト

for x in numbers: 
    print("{:10.04f}".format(x)) 

これは次のように、つまり各行を別々の行に印刷します。

23.2300 
    0.1233 
    1.0000 
    4.2230 
9887.2000 

ただし、すべて同じ行に印刷したいとします。次のコードを使用して、私はこれを達成することができました。

print('{:10.4f}{:10.4f}{:10.4f}{:10.4f}{:10.4f}'.format(numbers[0],numbers[1],numbers[2],numbers[3],numbers[4])) 

そして、私はこれを得た:

23.2300 0.1233 1.0000 4.2230 9887.2000 

私の質問は:明示的にループを使用して、リストの各要素を記述することなく、これを達成するための任意のより良い方法はありますか?私は110のエントリのリストを持っていて、明示的にそれぞれの要素を何度も書いているので、何度も苦しいです。どのように

+2

印刷呼び出しで 'end'を設定します:' print( "{:10.04f}"。フォーマット(x)、end = '') ' – idjaw

+0

[1行で動的に印刷](https: /stackoverflow.com/questions/3249524/print-in-one-line-dynamically) – idjaw

+0

これを行うと構文エラーが発生します。 – Pankaj

答えて

3

print(' '.join("{:10.04f}".format(x) for x in numbers)) 

は(参加以内String join()

を参照してください)、私たちは番号のリスト内の各要素にフォーマットを適用します。

+0

これは、必要な結果を生成する必要があります。しかし角括弧はオプションです。 –

+0

右の角括弧を削除しました。 –

2

印刷された組み込みメロンには、デフォルトで改行が付いた "end"キーワード引数があります。それについての詳細は

print("{:10.04f}".format(x), end="\t") 

チェックhttps://docs.python.org/3/library/functions.html?highlight=print#print:あなたはそうのように、スペースまたはタブでそれを交換する必要があります。

関連する問題