python的tabulate库提供打印表格数据的功能,支持以下数据类型:
输出表格可以通过参数自定义风格
tabulate库只有一个函数tabulate()
介绍一些常用参数:
table:表格数据或变量
headers:定义表格的表头
headers=“firstrow”:将每个列表的第一行做表头
headers=“keys”:使用字典索引的键做表头
showindex:行索引
showindex=‘always’:显示索引,从0开始,'always’也可以改成如list等迭代类型来自定义索引
from tabulate import tabulate
table=[['张三','北京','男'],\
['李四','上海','男'],\
['洛丽','南宁','女'],]
header=['姓名','祖籍','性别']
print(tabulate(table,headers=header,showindex='always'))
输出如下:
姓名 祖籍 性别
-- ---- ---- ----
0 张三 北京 男
1 李四 上海 男
2 洛丽 南宁 女
+----+------+------+------+
| | 姓名 | 祖籍 | 性别 |
+====+======+======+======+
| 0 | 张三 | 北京 | 男 |
+----+------+------+------+
| 1 | 李四 | 上海 | 男 |
+----+------+------+------+
| 2 | 洛丽 | 南宁 | 女 |
+----+------+------+------+
可用格式有:
numalign:设置全表格数字的对齐方式,默认智能对齐
可用的值有:right, center, left, None(用于禁用对齐)
print(tabulate([[1.2345],[12.345],[123.45],[1234.5],[12345]]))
print(tabulate([[1.2345],[12.345],[123.45],[1234.5],[12345]],numalign='left'))
输出如下:
----------
1.2345
12.345
123.45
1234.5
12345
----------
------
1.2345
12.345
123.45
1234.5
12345
------
colalign:文本对齐,可用的对齐方式和numalign,只不过colalign用来对齐文本而已
格式如:colalign=(‘right’,‘left’,‘center’),表示第一列右对齐,第二列左对齐,第三列居中对齐
floatfmt:控制小数点后保留几位小数
print(tabulate([["pi",3.141593],["e",2.718282]], floatfmt=".3f"))
输出:
-- -----
pi 3.142
e 2.718
-- -----
也可以像colalign的格式一样控制每一列不同的精确度
详情参考官方文档