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

Pan*_*kaj 1 python format

我有一个如下的浮动列表:

numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
Run Code Online (Sandbox Code Playgroud)

我想格式化它,以便我最多可以打印4个小数位。因此,我编写了以下代码:

for x in numbers:
    print("{:10.04f}".format(x))
Run Code Online (Sandbox Code Playgroud)

它在每个行之后打印以下(即每个数字)。

   23.2300
    0.1233
    1.0000
    4.2230
 9887.2000
Run Code Online (Sandbox Code Playgroud)

但是,我想将它们全部打印在同一行上。使用以下代码,我可以实现这一目标。

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

我得到了:

   23.2300    0.1233    1.0000    4.2230 9887.2000
Run Code Online (Sandbox Code Playgroud)

我的问题是:如果没有使用循环显式写入列表的每个元素,是否有更好的方法来实现这一目标?我有一个110个条目的列表,每一个元素都写很多次很痛苦。

Adi*_*rve 5

怎么样:

print(' '.join("{:10.04f}".format(x) for x in numbers))
Run Code Online (Sandbox Code Playgroud)

参见字符串join()

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