Python 实现 printTable() 函数:动态表格打印与右对齐
本文详解如何使用 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() 函数及表格打印内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













