在Python中将列表打印为表格数据

2025年1月5日 | 阅读 7 分钟

引言

在数据处理领域,Python 是一个非常优秀的工具。凭借其广泛的库和框架,Python 为用户提供了海量的工具,可以出色地处理数据。编程中一个普遍的任务是将列表转换为表格数据。无论您处理的是数字、字符串还是两者的混合,Python 都提供了多种方法来以令人称赞的方式格式化列表并以有条理的方式打印它们。在本详细指南中,我们将研究包括纯文本表格、PrettyTable、tabulate 和 pandas 在内的各种方法,它们可以帮助完成此任务。

在本教程中,我们将看到在 Python 中将列表打印为表格数据的各种示例。

1. 纯文本表格

当简洁性和定制程度是主要因素时,创建纯文本表格是一种简单的方法。Python 内置的字符串格式化功能使您能够轻松地进行表格化。通过混合使用字符串、循环和格式化,您可以以紧凑且易于阅读的形式打印列表。

让我们看看下面的代码实现

代码实现

输出

+ --------------- + --------------- + --------------- +
|    Column 1     |    Column 2     |    Column 3     |
+ --------------- + --------------- + --------------- +
|        1        |      Apple      |        5        |
+ --------------- + --------------- + --------------- +
|        2        |     Banana      |        8        |
+ --------------- + --------------- + --------------- +
|        3        |     Orange      |        3        |
+ --------------- + --------------- + --------------- +

说明

  • 函数 'print_plain_text_ table' 接受一个名为 'data' 的元组列表作为输入参数,每个元组包含三个对象,代表数据的一行。
  • 它使用字符串格式化来构建带有居中对齐的表格标题行,将列名指定为“Column 1”、“Column 2”和“Column 3”。
  • 因此,创建了一个分隔行,其中使用 + 字符作为边框,- 字符用于对齐,所有列宽都设置为 17 个字符。
  • 打印分隔行和标题行,以便从数据行中区分标题。
  • 它处理数据列表中的每个元组,并使用居中对齐的字符串格式化每个元素。
  • 对于每个格式化的行,都会打印出来,并用分隔行将其分开,以获得视觉上吸引人的表格格式。
  • 此外,还提供了一个示例用法,其中使用示例数据 (1, 'Apple', 5)、(2, 'Banana', 8) 和 (3, 'Orange', 3) 调用该函数,展示了如何应用它来打印具有相同数据的纯文本表格。

2. PrettyTable

PrettyTable 库简化了创建视觉吸引人的文本表格的过程。它提供了一个方便的 API,用于使用各种格式化选项创建表格。

要使用 PrettyTable,您需要先安装它

现在,让我们探索如何使用 PrettyTable 将列表打印为表格数据:调用 {functionName} 将返回所有项目。

代码实现

输出

+----------+----------+----------+
| Column 1 | Column 2 | Column 3 |
+----------+----------+----------+
|    1     |   BMW    |    5     |
|    2     | Mercedes |    8     |
|    3     |  Ferrari |    3     |
+----------+----------+----------+

说明

  • 'PrettyTable' 库在开始时被导入,并通过语句 'from prettytable import PrettyTable' 在整个过程中被用作 'PrettyTable'。
  • 该函数名为 print_pretty_table,它只接受一个参数,即数据,该参数必须是表示表格数据行的元组列表。
  • 在函数内部,实例化了一个名为 table 的 'PrettyTable' 对象。
  • 表列名通过 'field_names' 属性设置,并使用列标题“Column 1”、“Column 2”和“Column 3”。
  • 然后,它对数据列表中的每个元组进行迭代,并使用 PrettyTable 对象的 add_row 方法添加行。
  • 当表用数据填充后,将使用 print 函数显示格式化后的表。
  • 示例函数用法在声明下方给出。在这种情况下,使用示例数据 (1, 'BMW', 5)、(2, 'Mercedes', 8) 和 (3, 'Ferrari', 3) 执行该函数。
  • 在这种情况下,指定了 'print_pretty_table' 函数,使用 PrettyTable 库打印表。

3. Tabulate

tabulate 库是另一个强大的表格数据格式化模块。它支持各种输入数据类型,包括列表、字典和 pandas DataFrame。要使用 tabulate,您可以使用以下命令进行安装

现在,让我们看看如何使用 tabulate 将列表打印为表格数据。

代码实现

输出

╒════════════╤════════════╤════════════╕
│   Column 1 │ Column 2   │   Column 3 │
╞════════════╪════════════╪════════════╡
│          1 │ Rose       │          5 │
├────────────┼────────────┼────────────┤
│          2 │ Jasmine    │          8 │
├────────────┼────────────┼────────────┤
│          3 │ Lotus      │          3 │
╘════════════╧════════════╧════════════╛

说明

  • 正在考虑的代码导入了来自 tabulate 库的 tabulate 函数,该函数可以格式化表格数据。
  • 它指定了一个名为 print_tabulated_data 的函数,该函数只接受一个参数,即 data,该参数预计是一个表示表格数据的元组列表。
  • 在函数作用域内,创建了一个包含列名“Column 1”、“Column 2”和“Column 3”的标题列表。
  • 然后使用三个参数调用 tabulate 函数:data、headers=True 和 tablefmt='fancy_grid'
  • 该函数使用指定的标题和“fancy_grid”表格式将数据格式化为表格格式,该格式为表添加了视觉边框。
  • 格式化后的表被赋给变量 table。
  • 最后使用 print 函数显示格式化后的表。
  • 在函数定义下方,给出了一个函数用法示例,但它将使用一些示例文本数据,例如 (1, 'Rose', 5)、(2, 'Jasmine', 8) 和 (3, 'Lotus', 3)。
  • 此示例展示了如何使用 tabulate 包的 print_tabulated_data 函数来美观地生成表格数据。

4. Pandas

当涉及高级数据操作和分析,特别是在处理大量数据时,Pandas 库是最佳选择。Pandas DataFrame 是 Pandas 提供的一种二维标记数据结构。它可用于轻松管理和转换表格数据。要使用 pandas,您可以使用以下命令进行安装

现在,让我们探索如何使用 'pandas' 将列表打印为表格数据。

代码实现

输出

Column 1 Column 2  Column 3
0         1    Apple         5
1         2   Banana         8
2         3   Orange         3

说明

  • 提供的代码导入了语句 'import pandas as pd',以便访问 'pandas' 库,该库在 Python 中擅长数据操作和分析。
  • 它指定了一个名为 'print_pandas_table' 的函数,该函数接收一个名为 data 的单个输入,该输入预计是用于表格数据表示的元组列表。
  • 在函数 DataFrame 'df' 内部,使用 pd.DataFrame(data, columns= ["Column 1", "Column 2", "Column 3"]) 创建。
  • 通过使用 'pd.DataFrame()' 从给定数据创建 DataFrame。
  • columns 参数决定了 DataFrame 中的列名。
  • 接下来,使用 print 函数显示 DataFrame df。
  • 在 print_pandas_table 函数定义正下方,给出了一个用法演示,形式为 (1, 'Apple', 5)、(2, 'Banana', 5)、(3, 'Orange', 8)。
  • 以下示例演示了如何使用 print_pandas_table 函数,该函数是 tabulate 包的一部分,用于以结构化方式打印表数据,应用 pandas 包。

结论

在本文中,我们研究了在 Python 中将列表打印为表的各种方法。从简单的纯文本表格到更优雅的 PrettyTable、tabulate 和 pandas,您可以根据您的需求和偏好选择工具。

选择合适的方法取决于数据结构、所需的表示自定义程度以及进行操作和分析的额外功能需求等因素。无论您是刚入门编程还是经验丰富的开发人员,学习这些技术都将扩展您在 Python 中显示和处理表格数据的能力。