写在前面
Python编程中,我们经常需要在终端打印一些内容。我们知道格式化的打印方法,以及很好用的f-string
,但是如何优雅的打印出一个表格呢?就像下面这段数据。
headers = ['水果', '价格', '国家']
fruits = [
['苹果', 4, '中国'],
['橙子', 5, '中国'],
['梨', 6, '中国'],
['菠萝', 7, '中国'],
]
如何将它像表格一样打印到终端上呢?你可能会想到通过硬编码来逐行打印,其实已经有现成的轮子可以使用了,下面我们就来探索实现方法。
硬编码实现表格打印
headers = ['水果', '价格', '国家']
fruits = [
['苹果', 4, '中国'],
['橙子', 5, '中国'],
['梨', 6, '中国'],
['菠萝', 7, '中国'],
]
# 打印表头
print('|'.join(headers))
# 打印分隔线
print('-' * (len(headers) * 10))
# 打印每行数据
for fruit in fruits:
print('|'.join(str(item) for item in fruit))
运行以上代码,将会输出以下表格:
水果|价格|国家
----------------
苹果|4|中国
橙子|5|中国
梨|6|中国
菠萝|7|中国
在这个示例中,我们使用了 print
函数来打印表格中的每一行。首先打印出表头,然后打印出分隔线,最后使用循环遍历每一行数据并打印出来。我们使用 '|'.join()
函数来将每行数据的各列用竖线分隔。
但是,这个方法只能满足基本的表格,不包含格式化或对齐操作。如果你需要更复杂的表格显示,你可能需要使用其他库或工具来实现,如 PrettyTable、Texttable。
PrettyTable
使用 PrettyTable
库可以实现更复杂和美观的表格显示效果。下面是使用 PrettyTable
库来打印表格的示例代码:
from prettytable import PrettyTable
headers = ['水果', '价格', '国家']
fruits = [
['苹果', 4, '中国'],
['橙子', 5, '中国'],
['梨', 6, '中国'],
['菠萝', 7, '中国'],
]
table = PrettyTable(headers)
table.add_rows(fruits)
print(table)
运行以上代码,将会输出如下的美观表格:
+--------+------+--------+
| 水果 | 价格 | 国家 |
+--------+------+--------+
| 苹果 | 4 | 中国 |
| 橙子 | 5 | 中国 |
| 梨 | 6 | 中国 |
| 菠萝 | 7 | 中国 |
+--------+------+--------+
在这个示例中,我们首先导入 PrettyTable
类。然后,创建一个 PrettyTable
对象,并使用 add_rows()
方法将数据逐行添加到表格中。最后,使用 print()
函数打印出整个表格。
PrettyTable
可以自动对齐表格内容,并可以根据需要进行格式化和样式调整。你可以在 PrettyTable
的文档中查看更多关于自定义表格外观和样式的信息,以满足你的需求。
Texttable
要使用 Texttable
库打印以上的表格,你可以按照以下示例代码进行操作:
from texttable import Texttable
headers = ['水果', '价格', '国家']
fruits = [
['苹果', 4, '中国'],
['橙子', 5, '中国'],
['梨', 6, '中国'],
['菠萝', 7, '中国'],
]
table = Texttable()
table.set_cols_align(['l', 'r', 'l'])
table.header(headers)
table.add_rows(fruits)
print(table.draw())
运行以上代码,将会输出如下的表格:
+--------+-------+--------+
| 水果 | 价格 | 国家 |
+========+=======+========+
| 苹果 | 4 | 中国 |
+--------+-------+--------+
| 橙子 | 5 | 中国 |
+--------+-------+--------+
| 梨 | 6 | 中国 |
+--------+-------+--------+
| 菠萝 | 7 | 中国 |
+--------+-------+--------+
在这个示例中,我们首先导入 Texttable
类。然后,创建一个 Texttable
对象,并使用 set_cols_align()
方法设置列的对齐方式(‘l’ 表示左对齐,‘r’ 表示右对齐,‘c’ 表示居中对齐)。接下来,使用 header()
方法设置表头,使用 add_rows()
方法逐行添加数据。最后,使用 draw()
方法生成表格的字符串表示,并使用 print()
函数打印出来。
Texttable
提供了一些其他的方法和选项,可以用于自定义表格的样式和格式。你可以查阅 Texttable
的文档以获取更多详细信息,并根据需要进行定制。
其他的库
除了 PrettyTable
和Texttable
,还有其他一些库可以实现类似的表格效果。以下是一些常用的 Python 表格库:
- Pandas
Pandas 是一个功能强大的数据处理和分析库,它提供了 DataFrame
数据结构,可以用于创建和展示表格数据。你可以使用 Pandas 提供的方法和函数,对表格进行灵活的操作和定制,包括数据的筛选、排序、分组等。使用 Pandas 可以实现更高级的表格功能,适用于处理大量数据和进行数据分析。
- Tabulate
Tabulate 是一个用于将数据以表格形式展示的库。它支持多种输出格式(如纯文本、HTML、Markdown 等),并提供了丰富的表格样式和格式选项。使用 Tabulate,你可以将数据快速转换为漂亮的表格,并具有对齐、排序、边框、颜色等方面的定制能力。
这些库提供了丰富的功能和选项,可以根据你的需求选择最适合的库来创建和展示表格数据。你可以根据具体的使用场景和需求,了解这些库的文档和示例,选择最适合的库来实现你想要的表格效果。
写在最后
在本文中,我们介绍了几种常用的库,包括 PrettyTable 和 Texttable。这些库可以根据数据的需求和个人偏好,以不同的样式和格式打印表格。PrettyTable 简单易用,适合基本的表格需求;Texttable 简洁轻量,适合在终端中显示表格。无论你是需要简单的文本表格还是更复杂的数据分析,这些方法都能满足你的需求。当然了你也可以硬编码完成自己喜欢的结构。
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费
】