1. ホーム
  2. python

[解決済み] リストを表形式データとして印刷する

2022-03-20 02:26:50

質問

私はPythonの初心者ですが、印刷出力用にデータをきれいにフォーマットするのに苦労しています。

私は、2つの見出しに使用される1つのリストと、テーブルのコンテンツであるべき行列を持っています。このように。

teams_list = ["Man Utd", "Man City", "T Hotspur"]
data = np.array([[1, 2, 1],
                 [0, 1, 0],
                 [2, 4, 2]])

見出しの名前は、必ずしも同じ長さではないことに注意してください。しかし、データ項目はすべて整数である。

さて、これを表形式で表すと、次のようになる。

            Man Utd   Man City   T Hotspur
  Man Utd         1          0           0
 Man City         1          1           0
T Hotspur         0          1           2

このためのデータ構造があるはずだと直感しているのですが、見当たりません。辞書を使って印刷をフォーマットしてみたり、インデント付きのforループを試してみたり、文字列として印刷してみたりしています。

きっと、とても簡単な方法があるはずなのですが、私の経験不足で見逃しているのでしょう。

どのように解決するのですか?

アドホックなコードをいくつか。

row_format ="{:>15}" * (len(teams_list) + 1)
print(row_format.format("", *teams_list))
for team, row in zip(teams_list, data):
    print(row_format.format(team, *row))

これは str.format() と、その フォーマット仕様ミニ言語 .