我有一个如下的浮动列表:
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个条目的列表,每一个元素都写很多次很痛苦。
怎么样:
print(' '.join("{:10.04f}".format(x) for x in numbers))
Run Code Online (Sandbox Code Playgroud)
在join()中,我们将格式应用于数字列表中的每个元素。