Python 表格打印
发布时间:2020-12-20 12:47:44 所属栏目:Python 来源:网络整理
导读:Python编程快速上手实践项目题目,欢迎指证与优化! 编写一个名为 printTable()的函数, 它接受字符串的列表的列表,将它显示在组 织良好的表格中, 每列右对齐。假定所有内层列表都包含同样数目的字符串。例如, 该值可能看起来像这样: tableData = [[‘ap
Python编程快速上手实践项目题目,欢迎指证与优化!
编写一个名为 printTable()的函数, 它接受字符串的列表的列表,将它显示在组 织良好的表格中, 每列右对齐。假定所有内层列表都包含同样数目的字符串。例如, 该值可能看起来像这样: tableData = [[‘apples‘,‘oranges‘,‘cherries‘,‘banana‘], [‘Alice‘,‘Bob‘,‘Carol‘,‘David‘], [‘dogs‘,‘cats‘,‘moose‘,‘goose‘]] 你的 printTable()函数将打印出: 思路一: 1.计算列表中(包括内部列表)最长元素的长度; 2.以最长元素的长度值作为全局右对齐的值打印列表 代码: import copy tableData = [[‘apples‘,[‘Alice‘,‘Bob2222222222111‘,[‘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 width def 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)) 思路二: 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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |