Python打印字符串对齐



我正在Python中的循环中打印一些值。我当前的输出如下:

0  Data Count:  249   7348   249   4469   2768   261   20   126
1  Data Count:  288   11   288   48     2284   598   137      408 
2  Data Count:  808   999   808   2896   32739   138   202   678
3  Data Count:  140   26   140   2688   8054   884   433      987

我希望每列中的所有值都对齐,尽管有些列中的字符/数字计数不同,这样更容易阅读。

这背后的伪代码如下:

for i in range(0,3): 
print i, " Data Count: ", Count_A, " ", Count_B, " ", Count_C, " ", Count_D, " ", Count_E, " ", Count_F, " ", Count_G, " ", Count_H

提前感谢大家!

您可以使用格式字符串对齐:

from random import randint
for i in range(5):
data = [randint(0, 1000) for j in range(5)]
print("{:5} {:5} {:5} {:5}".format(*data))

输出:

92   460    72   630
837   214   118   677
906   328   102   320
895   998   177   922
651   742   215   938

根据Python文档的格式规范

使用%字符串格式化运算符,输出的最小宽度在占位符中指定为数据类型之前的数字(占位符的完整格式为%[key][flags][width][.precision][length type]conversion type(。如果结果较短,它将被填充到指定的长度:

from random import randint
for i in range(5):
data = [randint(0, 1000) for j in range(5)]
print("%5d %5d %5d %5d %5d" % tuple(data))

给出:

946   937   544   636   871
232   860   704   877   716
868   849   851   488   739
419   381   695   909   518
570   756   467   351   537

(代码改编自@andreihondari的回答(

最新更新