2017-06-20 62 views
1

我有花車的列表類似以下內容:格式浮點數在同一行Python從列表

numbers = [23.23, 0.123334987, 1, 4.223, 9887.2] 

我想格式化,這樣我可以打印多達4位小數。所以,我寫了下面的代碼:

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}」。format(x),end ='')' – idjaw

+0

[在一行中動態打印](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()

內join()方法中,我們應用的格式在數字列表中的每個元素。

+0

這應該產生你想要的結果。方括號是可選的。 –

+0

對,刪除方括號 –