tabulate
字符串样式的格式化表格#
参考:tabulate
安装:
pip3 install tabulate
from tabulate import tabulate
使用 list
生成表格#
table = [
['First Name', 'Last Name', 'Age'],
['John', 'Smith', 39],
['Mary', 'Jane', 25],
['Jennifer', 'Doe', 28]
]
print(tabulate(table))
---------- --------- ---
First Name Last Name Age
John Smith 39
Mary Jane 25
Jennifer Doe 28
---------- --------- ---
使用以下参数将列名单独显示出来:
print(tabulate(table, headers='firstrow'))
First Name Last Name Age
------------ ----------- -----
John Smith 39
Mary Jane 25
Jennifer Doe 28
tabulate()
函数还包提供 tablefmt
参数,它允许进一步改进表格的外观,代码如下:
print(tabulate(table, headers='firstrow', tablefmt='grid'))
+--------------+-------------+-------+
| First Name | Last Name | Age |
+==============+=============+=======+
| John | Smith | 39 |
+--------------+-------------+-------+
| Mary | Jane | 25 |
+--------------+-------------+-------+
| Jennifer | Doe | 28 |
+--------------+-------------+-------+
print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))
╒══════════════╤═════════════╤═══════╕
│ First Name │ Last Name │ Age │
╞══════════════╪═════════════╪═══════╡
│ John │ Smith │ 39 │
├──────────────┼─────────────┼───────┤
│ Mary │ Jane │ 25 │
├──────────────┼─────────────┼───────┤
│ Jennifer │ Doe │ 28 │
╘══════════════╧═════════════╧═══════╛
使用 dict
生成表格#
在字典的情况下,键通常是列的标题,值将是这些列的元素取值。通常通过传递“keys”作为 headers 参数的参数来指定键是表格的标题:
info = {
'First Name': ['John', 'Mary', 'Jennifer'],
'Last Name': ['Smith', 'Jane', 'Doe'],
'Age': [39, 25, 28]
}
print(tabulate(info, headers='keys'))
First Name Last Name Age
------------ ----------- -----
John Smith 39
Mary Jane 25
Jennifer Doe 28
还可以使用 showindex
参数来向表格中添加索引列:
print(tabulate(info, headers='keys', tablefmt='fancy_grid', showindex=True))
╒════╤══════════════╤═════════════╤═══════╕
│ │ First Name │ Last Name │ Age │
╞════╪══════════════╪═════════════╪═══════╡
│ 0 │ John │ Smith │ 39 │
├────┼──────────────┼─────────────┼───────┤
│ 1 │ Mary │ Jane │ 25 │
├────┼──────────────┼─────────────┼───────┤
│ 2 │ Jennifer │ Doe │ 28 │
╘════╧══════════════╧═════════════╧═══════╛
print(tabulate(info, headers='keys', tablefmt='fancy_grid', showindex=range(1, 4)))
╒════╤══════════════╤═════════════╤═══════╕
│ │ First Name │ Last Name │ Age │
╞════╪══════════════╪═════════════╪═══════╡
│ 1 │ John │ Smith │ 39 │
├────┼──────────────┼─────────────┼───────┤
│ 2 │ Mary │ Jane │ 25 │
├────┼──────────────┼─────────────┼───────┤
│ 3 │ Jennifer │ Doe │ 28 │
╘════╧══════════════╧═════════════╧═══════╛