在 Python 中,对齐和格式化表格数据输出可以通过多种方式实现。以下是几种常见的方法:
format 方法Python 的字符串 format 方法允许你指定字段的宽度和对齐方式。
data = [
("Alice", 24, "Engineer"),
("Bob", 30, "Doctor"),
("Charlie", 22, "Artist")
]
# 定义列宽
col_width = 10
# 打印表头
print("{:<{}} {:<{}} {:<{}}".format("Name", col_width, "Age", col_width, "Occupation", col_width))
# 打印数据
for name, age, occupation in data:
print("{:<{}} {:<{}} {:<{}}".format(name, col_width, age, col_width, occupation, col_width))
输出:
Name Age Occupation
Alice 24 Engineer
Bob 30 Doctor
Charlie 22 Artist
:< 表示左对齐,>: 表示右对齐,^: 表示居中对齐。col_width 是列的宽度。f-string(Python 3.6+)f-string 是 Python 3.6 引入的一种更简洁的字符串格式化方式。
data = [
("Alice", 24, "Engineer"),
("Bob", 30, "Doctor"),
("Charlie", 22, "Artist")
]
# 定义列宽
col_width = 10
# 打印表头
print(f"{'Name':<{col_width}} {'Age':<{col_width}} {'Occupation':<{col_width}}")
# 打印数据
for name, age, occupation in data:
print(f"{name:<{col_width}} {age:<{col_width}} {occupation:<{col_width}}")
输出与上面相同。
tabulate 库tabulate 是一个第三方库,可以轻松地将数据格式化为表格。
首先安装 tabulate:
pip install tabulate
然后使用它来格式化表格:
from tabulate import tabulate
data = [
["Alice", 24, "Engineer"],
["Bob", 30, "Doctor"],
["Charlie", 22, "Artist"]
]
headers = ["Name", "Age", "Occupation"]
# 使用 tabulate 格式化表格
print(tabulate(data, headers=headers, tablefmt="pretty"))
输出:
+---------+-----+------------+
| Name | Age | Occupation |
+---------+-----+------------+
| Alice | 24 | Engineer |
| Bob | 30 | Doctor |
| Charlie | 22 | Artist |
+---------+-----+------------+
tabulate 支持多种表格格式,如 plain, simple, grid, fancy_grid, pipe, orgtbl, jira, presto, psql, rst, mediawiki, moinmoin, youtrack, html, latex, latex_raw, latex_booktabs, textile 等。
prettytable 库prettytable 是另一个用于生成美观表格的第三方库。
首先安装 prettytable:
pip install prettytable
然后使用它来格式化表格:
from prettytable import PrettyTable
table = PrettyTable()
table.field_names = ["Name", "Age", "Occupation"]
data = [
("Alice", 24, "Engineer"),
("Bob", 30, "Doctor"),
("Charlie", 22, "Artist")
]
for row in data:
table.add_row(row)
print(table)
输出:
+---------+-----+------------+
| Name | Age | Occupation |
+---------+-----+------------+
| Alice | 24 | Engineer |
| Bob | 30 | Doctor |
| Charlie | 22 | Artist |
+---------+-----+------------+
format 方法或 f-string。tabulate 或 prettytable 库,它们提供了更多的功能和更好的可读性。根据你的需求选择合适的工具来格式化表格数据。