Python 实现 printTable() 函数:动态表格打印与右对齐

夏知夏
夏知夏
发布时间:2026-10-13| 6人浏览过
原创

本文详解如何使用 Python 编写 printTable() 函数,实现字符串列表的整齐表格打印。核心逻辑包括遍历内层列表计算最大字符串长度以确定列宽,利用嵌套循环按列优先顺序提取数据,并通过 rjust() 方法实现每列右对齐。代码包含完整的输入定义、列宽计算及格式化输出逻辑,适用于需要结构化展示多维列表数据的场景。

printTable 函数需求分析

编写一个名为 printTable() 的函数,它接受字符串的列表的列表,将它显示在组织良好的表格中,每列右对齐。假定所有内层列表都包含同样数目的字符串

输入示例如下所示:


tableData = [[‘apple',‘orange',‘cherry',‘banana'],
[‘Alice',‘Bob',‘Cathy',‘David'],
[‘dog',‘cat',‘bird',‘duck']]

期望的输出效果如下:

列宽计算与对齐逻辑

首先,我们需要确定每一列的宽度。通过观察 tableData 列表与输出截图可以发现,输出的第一行由内层列表的首项组成,第二行由每个内层列表的第二项组成;而第一列则包含第一个内层列表的所有项,且所有列均需右对齐,对齐基准是该列中最长字符串的长度。因此,算法的第一步是遍历每个内层列表,找出其中最长字符串的长度,并将该长度存储起来作为该列的对齐标准。


colWidths = [0]*len(tableData)#colWidths列表中每个元素放置每个内置列表的最长字符串长度
len1 = 0
#分别求列表的每一个内置列表中最长的字符串的长度
for i in range(len(tableData)):
 for j in range(len(tableData[i])):
  if len(tableData[i][j]) > colWidths[i]:#找最长
   colWidths[i] = len(tableData[i][j])

嵌套循环与打印实现

其次,观察打印结果可知,这是一个四行三列的表格。由此推断, 函数内部需要包含两层嵌套循环:外层循环控制行数(长度为4),内层循环控制列数(长度为3)。由于 tableData 列表包含3个内层列表,每个内层列表有4项,我们可以将内层列表的长度(即行数)作为外层循环的范围,将外层列表的长度(即列数)作为内层循环的范围。同时,为了实现每列右对齐,每次打印字符串时,直接使用预先计算好的 colWidths 列表中对应的值作为对齐参数即可。


def printTable(List1,List2):
 #第一层循环
 for i in range(len(List1[0])):
  #第二层循环
  for j in range(len(List1)):
   print(List1[j][i].rjust(int(List2[j])),end=' ')
  print()

完整代码示例

完整实现代码如下:


def printTable(List1,List2):
 #第一层循环
 for i in range(len(List1[0])):
  #第二层循环
  for j in range(len(List1)):
   print(List1[j][i].rjust(int(List2[j])),end=' ')#打印完一行再换行
  print()

tableData = [
 ['apples','oranges','cherries','banana'],
 ['Alice','Bod','Carol','David'],
 ['dogs','cats','moose','goose']
    ]
colWidths = [0]*len(tableData)#colWidths列表中每个元素放置每个内置列表的最长字符串长度
len1 = 0
#分别求列表的每一个内置列表中最长的字符串的长度
for i in range(len(tableData)):
 for j in range(len(tableData[i])):
  if len(tableData[i][j]) > colWidths[i]:
   colWidths[i] = len(tableData[i][j])

printTable(tableData,colWidths)

总结

总结

到此这篇关于 Python 6.7 编写一个名为 printTable() 的函数用于表格打印的文章就介绍到这了,更多相关 Python printTable() 函数及表格打印内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。