如何以表格格式(python)从列表中打印值?

时间:2019-04-09 10:02:23

标签: python-2.7

使用python 2.7,我想以表格格式显示值,而不使用pandas / prettytable。我是python的初学者,正在尝试学习。

以下是我列表中的值

listA = ["Alpha","Beta","gama","cat"]
data = [["A","B","C","D"],["E","F","G","H"],["I","J","K","L"],["M","N","O","P"]]

预期输出-将以表格格式显示如下:

Alpha  Beta  gama  cat    
A      B     C     D   
E      F     G     H     
I      J     K     L
M      N     O     P

我尝试了以下代码,但没有得到想要的结果:

def print_results_table(data, listA):
    str_l = max(len(t) for t in listA)
    print(" ".join(['{:>{length}s}'.format(t, length = str_l) for t in [" "] + listA]))

    for t, row in zip(listA, data):
        print(" ".join(['{:>{length}s}'.format(str(x), length = str_l) for x in [t] + row]))

print_results_table(data, listA)

1 个答案:

答案 0 :(得分:0)

您非常接近!

def print_results_table(data, listA):
    str_l = max(len(t) for t in listA)
    str_l += 2 # add two spaces between elements
    # print the titles
    for title in listA:
        print('{:<{length}s}'.format(title, length = str_l), end='')
    print()

    # print the values
    for row in data:
        for val in row:
            print('{:<{length}s}'.format(val, length = str_l), end='')
        print()

输出:

Alpha  Beta   gama   cat    
A      B      C      D      
E      F      G      H      
I      J      K      L      
M      N      O      P