我想以表格的格式显示一个简单的2D数组,顶部是标题,这样,这些值就会排列在标题下面。有办法这样做吗?我看过pprint和打印使用numpy,但无法使它工作。以下是我目前所拥有的:
myArray = [['Student Name','Marks','Level'],['Johnny',68,4],['Jennifer',59,3],['William',34,2]]
for row in myArray:
    print(" ")
    for each in row:
        print(each,end = ' ')有什么建议吗?
发布于 2015-07-22 15:09:02
您只需要根据最长元素的长度对齐:
myArray = [['Student Name','Marks','Level'],['Johnny',68,4],['Jennifer',59,3],['William',34,2]]
mx = len(max((sub[0] for sub in myArray),key=len))
for row in myArray:
    print(" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in row]))输出:
Student Name Marks        Level       
Johnny       68           4           
Jennifer     59           3           
William      34           2 若要在最大长度calc中包含int值,请执行以下操作:
mx = max((len(str(ele)) for sub in myArray for ele in sub))
for row in myArray:
    print(" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in row]))输出:
Student Name Marks        Level       
Johnny       68           4           
Jennifer     59           3           
William      34           2       https://stackoverflow.com/questions/31566780
复制相似问题