在本文中,您將學(xué)習(xí)如何使用 Python 編程語言制作輸出表格。Python 提供了豐富的庫支持來完成特定任務(wù)。我們可以使用 tabulate 模塊或 PrettyTable 模塊在 Python 中創(chuàng)建輸出表格。
使用 tabulate 模塊創(chuàng)建表格
我們可以使用 tabulate 模塊輕松地在 python 創(chuàng)建輸出表格。首先,我們需要安裝它。
pip install tabulate
現(xiàn)在我們已準(zhǔn)備好此模塊,讓我們通過簡單示例了解在 python 中創(chuàng)建表格的過程。
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
在這里,我們使用了一個嵌套列表存儲學(xué)生信息,很容易使用 tabulate 模塊創(chuàng)建了一個表格。還可以繼續(xù)設(shè)計表格,比如加邊框線,讓表格更加漂亮。
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 |
+-------+-----+
在這里,傳遞一個新參數(shù) tablefmt="pretty",為表格添加了邊框線。tablefmt 還可以接受幾個不同的選項,包括:grid、fancy_grid、pipe、simple。
使用“pipe”選項可以創(chuàng)建 Markdown 表,甚至包括使用冒號進(jìn)行對齊,可以直接復(fù)制到 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 |
其他有用參數(shù)還有 showindex='always'(添加索引)、missingval='NA'(處理表格中缺失的值)、floatfmt=".4f"(自定義數(shù)字格式)等。
從字典創(chuàng)建表格,我們可以獲取字典的鍵作為表頭,遍歷字典的值,添加到列表,創(chuàng)建表格。
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 模塊創(chuàng)建表
安裝:
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 方法為表格添加每一行數(shù)據(jù)。