当前位置:   article > 正文

Python 表格打印

python 将下表中联系信息(comtact information)打印出来

Python编程快速上手实践项目题目,欢迎指证与优化!
编写一个名为 printTable()的函数, 它接受字符串的列表的列表,将它显示在组
织良好的表格中, 每列右对齐。假定所有内层列表都包含同样数目的字符串。例如,
该值可能看起来像这样:
tableData = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
你的 printTable()函数将打印出:
Python 表格打印
思路一:
1.计算列表中(包括内部列表)最长元素的长度;
2.以最长元素的长度值作为全局右对齐的值打印列表
代码:

  1. import copy
  2. tableData = [['apples', 'oranges', 'cherries', 'banana'],
  3. ['Alice', 'Bob1111111111111', 'Carol', 'David'],
  4. ['dogs', 'cats', 'moose', 'goose']]
  5. def count_width(the_list):
  6. #定义函数:计算列表字符串最长值
  7. new_list=copy.deepcopy(the_list)
  8. #复制列表保存到独立的新列表
  9. colWidths = [0] * len(new_list)
  10. #创建一个列表,数目等同于tableData
  11. i=0
  12. while i < len(new_list):
  13. new_list[i].sort(key = lambda i:len(i),reverse = True)
  14. '''重新按照字符长度逆序(从大到小),lamba表示匿名函数,key = lambda i:len(i)代表
  15. 以元素i的len()值作为比较
  16. '''
  17. colWidths[i]=new_list[i][0]
  18. # print (colWidths[i])
  19. i=i+1
  20. #将tableData[i]降序排序,取最大值(第一个),得到一个每个内层列表中最长的字符串的列表
  21. colWidths.sort(key = lambda i:len(i),reverse = True)
  22. width=len(colWidths[0])
  23. #将colWidths降序排序,取最大值(第一个)并计算其字符宽度
  24. #print (width)
  25. #print (the_list)
  26. #print (new_list)
  27. return width
  28. def list_rjust(the_list,width):
  29. for j in range (len(the_list[0])):
  30. for i in range (len(the_list)):
  31. print(the_list[i][j].rjust(width),end=" ")
  32. print("\r")
  33. list_rjust(tableData,count_width(tableData))
'
运行

思路二:
1.计算列表(数组,没有嵌套数组)最长元素的值;
2.按照列表最长元素的值打印列表(每列的最长值可能不同)
代码:

  1. tableDate=[['apples', 'oranges', 'cherries', 'banana'],
  2. ['Alice', 'Bob', 'Carol', 'David'],
  3. ['dogs', 'cats', 'moose', 'goose']]
  4. def findmaxlen(Dates):
  5. '''
  6. 计算一个数组中最长元素的长度
  7. '''
  8. maxlen=0
  9. for i in range(len(Dates)):
  10. if len(Dates[i])>maxlen:
  11. maxlen=len(Dates[i])
  12. return maxlen
  13. #print(findmaxlen(tableDate[0]))
  14. def printTable(the_list):
  15. for j in range (len(the_list[0])):#打印内部数组的第j个
  16. for i in range (len(the_list)):#打印数组的第i个
  17. print(the_list[i][j].rjust(findmaxlen(the_list[i])),end=' ')
  18. #打印第i个数组的第j个内部数组时,按照第i个数组中的元素最长值右对齐
  19. print("\r")
  20. printTable(tableDate)
'
运行
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/993086
推荐阅读
相关标签
  

闽ICP备14008679号