我有一个浮动列表如下:
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个条目的列表,并且每个元素都明确写出这么多次是痛苦的。
答案 0 :(得分:5)
怎么样:
print(' '.join("{:10.04f}".format(x) for x in numbers))
在join()中,我们将格式应用于数字列表中的每个元素。
答案 1 :(得分:2)
打印内置的方法有一个"结束"关键字参数,默认为换行符。您只需要用空格或制表符替换它,如下所示:
print("{:10.04f}".format(x), end="\t")
检查https://docs.python.org/3/library/functions.html?highlight=print#print以获取更多信息。