python分行打印列表的6个函数,python 6.7 编写printTable()函数表格打印(完整代码)

该篇博客介绍了如何编写一个名为printTable()的Python函数,用于将字符串列表的列表以右对齐的方式打印成组织良好的表格。首先,通过遍历找到每个内层列表中最长的字符串长度,存储在colWidths列表中。然后,利用两层循环结构,根据colWidths进行右对齐打印。最后,展示了具体代码和示例输入输出,帮助理解函数的工作原理。
摘要由CSDN通过智能技术生成

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

输入:

tableData = [[‘apple',‘orange',‘cherry',‘banana'],

[‘Alice',‘Bob',‘Cathy',‘David'],

[‘dog',‘cat',‘bird',‘duck']]

输出:

dnzqheeonsn.jpg

因此首先要找到每一个内层列表中最长的字符串长度,因为我们可以对比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])

其次我们可以看到,打印得到的结果为一个四行三列的表格,因此可以得出函数printTable()中可以有一个两层的嵌套循环,第一层循环长度为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()函数 表格打印内容请搜索聚米学院以前的文章或继续浏览下面的相关文章希望大家以后多多支持聚米学院!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值