首页 > 解决方案 > 表格中显示的二维数组信息

问题描述

该程序应以表格格式显示结果,每一列代表一所学校,每一行代表一个捐赠金额。总计并显示每一列和每一行。

首先我有学校并创建二维数组。

schools = ["Catholic Central","Holy Cross","John Paul II","Mother Teresa","Regina Mundi","St. Joseph","St. Mary","St. Thomas Aquinas"]
donations = [.25,.5,1,2]
collected = []

for row in range(0,len(schools)):
    collected.append([])

for row in range (0,len(schools)):
    for col in range (0,len(donations)):
      collected[row].append(0)

使用我创建的二维数组,我希望它输出如下所示的内容:

Donations  Catholic Central Holy Cross John Paul II Mother Teresa Regina Mundi St. Joseph St. Mary St. Thomas Aquinas TOTAL
0.25       0.0              0.0        0.0          0.0           0.0          0.0        0.0      0.0                 0.0
0.50       0.0              0.0        0.0          0.0           0.0          0.0        0.0      0.0                 0.0
1.00       0.0              0.0        0.0          0.0           0.0          0.0        0.0      0.0                 0.0
2.00       0.0              0.0        0.0          0.0           0.0          0.0        0.0      0.0                 0.0

标签: pythonarraysdatatable

解决方案


Pretty table 是一个非常有用的(外部)模块,您可以使用它。在这里可以找到更多详细信息: https ://pypi.org/project/prettytable/ 。首先你需要下载它:

python -m pip install -U prettytable

导入后:

from prettytable import PrettyTable
x = PrettyTable()

然后创建行和标题:

x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.add_row(["Adelaide", 1295, 1158259, 600.5])
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
x.add_row(["Hobart", 1357, 205556, 619.5])
x.add_row(["Sydney", 2058, 4336374, 1214.8])
x.add_row(["Melbourne", 1566, 3806092, 646.9])
x.add_row(["Perth", 5386, 1554769, 869.4])

或者:

x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.add_rows(
    [
        ["Adelaide", 1295, 1158259, 600.5],
        ["Brisbane", 5905, 1857594, 1146.4],
        ["Darwin", 112, 120900, 1714.7],
        ["Hobart", 1357, 205556, 619.5],
        ["Sydney", 2058, 4336374, 1214.8],
        ["Melbourne", 1566, 3806092, 646.9],
        ["Perth", 5386, 1554769, 869.4],
    ]
)
print(x)

输出:

+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
| Adelaide  | 1295 |  1158259   |      600.5      |
| Brisbane  | 5905 |  1857594   |      1146.4     |
| Darwin    | 112  |   120900   |      1714.7     |
| Hobart    | 1357 |   205556   |      619.5      |
| Melbourne | 1566 |  3806092   |      646.9      |
| Perth     | 5386 |  1554769   |      869.4      |
| Sydney    | 2058 |  4336374   |      1214.8     |
+-----------+------+------------+-----------------+

推荐阅读