4

単純な 2D 配列を表形式で表示し、上部に見出しを付けて、値が見出しの下に並ぶようにしたいと考えています。これを行う方法はありますか?numpy を使用して pprint と印刷を見てきましたが、動作させることができません。現時点で私が持っているものは次のとおりです。

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 = ' ')

助言がありますか?

4

1 に答える 1

3

最も長い要素の長さに基づいて整列する必要があります。

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 

最大長の計算に 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       
于 2015-07-22T15:09:02.350 に答える