在列表中的同一行上格式化python中的浮点数

时间:2017-06-20 02:33:54

标签: python format

我有一个浮动列表如下:

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 个答案:

答案 0 :(得分:5)

怎么样:

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

请参阅String join()

在join()中,我们将格式应用于数字列表中的每个元素。

答案 1 :(得分:2)

打印内置的方法有一个"结束"关键字参数,默认为换行符。您只需要用空格或制表符替换它,如下所示:

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

检查https://docs.python.org/3/library/functions.html?highlight=print#print以获取更多信息。