
编写一个名为 printtable()的函数, 它接受字符串的列表的列表,将它显示在组
织良好的表格中, 每列右对齐。假定所有内层列表都包含同样数目的字符串。例如,
该值可能看起来像这样:
tableData = [[‘apples‘,‘oranges‘,‘cherrIEs‘,‘banana‘],
[‘Alice‘,‘Bob‘,‘Carol‘,‘DavID‘],
[‘dogs‘,‘cats‘,‘moose‘,‘goose‘]]
你的 printtable()函数将打印出:
思路一:
1.计算列表中(包括内部列表)最长元素的长度;
2.以最长元素的长度值作为全局右对齐的值打印列表
代码:
import copytableData = [[‘apples‘,[‘Alice‘,‘Bob1111111111111‘,[‘dogs‘,‘goose‘]]def count_wIDth(the_List): #定义函数:计算列表字符串最长值 new_List=copy.deepcopy(the_List) #复制列表保存到独立的新列表 colWIDths = [0] * len(new_List) #创建一个列表,数目等同于tableData i=0 while i < len(new_List): new_List[i].sort(key = lambda i:len(i),reverse = True) ‘‘‘重新按照字符长度逆序(从大到小),lamba表示匿名函数,key = lambda i:len(i)代表 以元素i的len()值作为比较 ‘‘‘ colWIDths[i]=new_List[i][0] # print (colWIDths[i]) i=i+1 #将tableData[i]降序排序,取最大值(第一个),得到一个每个内层列表中最长的字符串的列表 colWIDths.sort(key = lambda i:len(i),reverse = True) wIDth=len(colWIDths[0]) #将colWIDths降序排序,取最大值(第一个)并计算其字符宽度 #print (wIDth) #print (the_List) #print (new_List) return wIDthdef List_rjust(the_List,wIDth): for j in range (len(the_List[0])): for i in range (len(the_List)): print(the_List[i][j].rjust(wIDth),end=" ") print("\r")List_rjust(tableData,count_wIDth(tableData)) 思路二:
1.计算列表(数组,没有嵌套数组)最长元素的值;
2.按照列表最长元素的值打印列表(每列的最长值可能不同)
代码:
tableDate=[[‘apples‘,‘goose‘]]def findmaxlen(Dates): ‘‘‘ 计算一个数组中最长元素的长度 ‘‘‘ maxlen=0 for i in range(len(Dates)): if len(Dates[i])>maxlen: maxlen=len(Dates[i]) return maxlen#print(findmaxlen(tableDate[0]))def printtable(the_List): for j in range (len(the_List[0])):#打印内部数组的第j个 for i in range (len(the_List)):#打印数组的第i个 print(the_List[i][j].rjust(findmaxlen(the_List[i])),end=‘ ‘) #打印第i个数组的第j个内部数组时,按照第i个数组中的元素最长值右对齐 print("\r")printtable(tableDate) 总结 以上是内存溢出为你收集整理的Python 表格打印全部内容,希望文章能够帮你解决Python 表格打印所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)