在本文中,您将学习如何使用 Python 编程语言制作输出表格。Python 提供了丰富的库支持来完成特定任务。我们可以使用 tabulate 模块或 PrettyTable 模块在 Python 中创建输出表格。
使用 tabulate 模块创建表格
我们可以使用 tabulate 模块轻松地在 python 创建输出表格。首先,我们需要安装它。
pip install tabulate
现在我们已准备好此模块,让我们通过简单示例了解在 python 中创建表格的过程。
from tabulate import tabulate
student_data = [["Li", "16"],
["Wang", "19"],
["Zhang", "21"],
["Zhou", "23"]]
heading = ["Name", "Age"] # 表头
print(tabulate(student_data, headers=heading))
输出:
Name Age
----- ----
Li 16
Wang 19
Zhang 21
Zhou 23
在这里,我们使用了一个嵌套列表存储学生信息,很容易使用 tabulate 模块创建了一个表格。还可以继续设计表格,比如加边框线,让表格更加漂亮。
from tabulate import tabulate
student_data = [["Li", "16"],
["Wang", "19"],
["Zhang", "21"],
["Zhou", "23"]]
heading = ["Name", "Age"] # 表头
print(tabulate(student_data, headers=heading, tablefmt="pretty"))
输出:
+-------+-----+
| Name | Age |
+-------+-----+
| Li | 16 |
| Wang | 19 |
| Zhang | 21 |
| Zhou | 23 |
+-------+-----+
在这里,传递一个新参数 tablefmt="pretty",为表格添加了边框线。tablefmt 还可以接受几个不同的选项,包括:grid、fancy_grid、pipe、simple。
使用“pipe”选项可以创建 Markdown 表,甚至包括使用冒号进行对齐,可以直接复制到 Markdown 文档中使用。
from tabulate import tabulate
student_data = [["Li", "16"],
["Wang", "19"],
["Zhang", "21"],
["Zhou", "23"]]
heading = ["Name", "Age"]
print(tabulate(student_data, headers=heading, tablefmt="pipe"))
输出:
| Name | Age |
|:-------|------:|
| Li | 16 |
| Wang | 19 |
| Zhang | 21 |
| Zhou | 23 |
其他有用参数还有 showindex='always'(添加索引)、missingval='NA'(处理表格中缺失的值)、floatfmt=".4f"(自定义数字格式)等。
从字典创建表格,我们可以获取字典的键作为表头,遍历字典的值,添加到列表,创建表格。
from tabulate import tabulate
data = [{"Name": "Li", "Age": 16}, {"Name": "Bruce", "Age": 19}, {"Name": "Zhang", "Age": 21}, {"Name": "Zhou", "Age": 23}]
headers = data[0].keys()
rows = []
for x in data:
rows.append(x.values())
print(tabulate(rows, headers, tablefmt="simple"))
使用 PrettyTable 模块创建表
安装:
pip install prettytable
PrettyTable 与 tabulate 模块略有不同。让我们通过实例了解它:
from prettytable import PrettyTable
student_table = PrettyTable(["Name", "Age"])
student_table.add_row(["Li", "16"])
student_table.add_row(["Wang", "19"])
student_table.add_row(["Zhang", "21"])
student_table.add_row(["Zhou", "23"])
print(student_table)
输出:
+-------+-----+
| Name | Age |
+-------+-----+
| Li | 16 |
| Wang | 19 |
| Zhang | 21 |
| Zhou | 23 |
+-------+-----+
PrettyTable 模块首先添加表头,然后使用 add_row 方法为表格添加每一行数据。