python - 表格中显示的二维数组信息
问题描述
该程序应以表格格式显示结果,每一列代表一所学校,每一行代表一个捐赠金额。总计并显示每一列和每一行。
首先我有学校并创建二维数组。
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
解决方案
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 |
+-----------+------+------------+-----------------+
推荐阅读
- docker - docker容器中的nginx基本身份验证
- flutter - 首次加载后导航到额外的页面秒数
- sql - 循环遍历记录集并计数是否在日期范围内
- javascript - jQuery突出显示搜索词的文本
- javascript - Highcharts - 第三个 Y 轴上的对齐问题
- azure-devops - 克隆项目/案例的自动关系
- java - android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter) 在空对象引用上
- vb.net - VB.NET 在子例程的参数中使用“New”语句创建的资源范围
- laravel - Laravel:如何在 where 条件下获取一组记录中的最新记录?
- python-3.x - 如何查看您授权的 AWS Lambda 函数列表