Python学习-表格打印字符串列表

快来打我* 2022-01-22 11:43 414阅读 0赞

题目:
编写一个名为 printTable()的函数,它接受字符串的列表的列表,将它显示在组
织良好的表格中,每列右对齐。假定所有内层列表都包含同样数目的字符串。例如,
该值可能看起来像这样:


  1. tableData = [['apples', 'oranges', 'cherries', 'banana'],
  2. ['Alice', 'Bob', 'Carol', 'David'],
  3. ['dogs', 'cats', 'moose', 'goose']]

你的 printTable()函数将打印出:


  1. apples Alice dog
  2. oranges Bob cats
  3. cherries Carol moose
  4. banana David goose

  1. # 获取一维列表中字符串法的最大长度
  2. def maxlen(tableData):
  3. num = 0
  4. for i in range(len(tableData)):
  5. if num < len(tableData[i]):
  6. num = len(tableData[i])
  7. # 返回列表中最长的字符串的长度
  8. return num
  9. # 二位列表将列表以行格式化打印
  10. # apples oranges cherries banana
  11. # Alice Bob Carol David
  12. # dogs cats moose goose
  13. def printRowTable(tableData,flag):
  14. colWidths = [0] * len(tableData)
  15. for i in range(len(tableData)):
  16. colWidths[i] = maxlen(tableData[i])
  17. num = max(colWidths)
  18. for i in range(len(tableData)):
  19. for j in range(len(tableData[i])):
  20. if flag == 'left' :
  21. print(tableData[i][j].ljust(num + 4), end="")
  22. elif flag == 'right':
  23. print(tableData[i][j].rjust(num + 4), end="")
  24. else:
  25. print(tableData[i][j].center(num + 4), end="")
  26. print()
  27. # 二位列表将列表以列格式化打印
  28. # apples Alice dog
  29. # oranges Bob cats
  30. # cherries Carol moose
  31. # banana David goose
  32. def printColumnTable(tableData,flag):
  33. colWidths = [0] * len(tableData)
  34. for i in range(len(tableData)):
  35. colWidths[i] = maxlen(tableData[i])
  36. num = max(colWidths)
  37. for j in range(len(tableData[0])):
  38. for i in range(len(tableData)):
  39. if flag == 'left' :
  40. print(tableData[i][j].ljust(num + 4), end="")
  41. elif flag == 'right':
  42. print(tableData[i][j].rjust(num + 4), end="")
  43. else:
  44. print(tableData[i][j].center(num + 4), end="")
  45. print()
  46. tableData = [['apples', 'oranges', 'cherries', 'banana'],
  47. ['Alice', 'Bob', 'Carol', 'David'],
  48. ['dogs', 'cats', 'moose', 'goose']]
  49. print("======================Row===========================")
  50. printRowTable(tableData,'right')
  51. print("====================================================")
  52. printRowTable(tableData,'left')
  53. print("====================================================")
  54. printRowTable(tableData,'center')
  55. print("======================Column========================")
  56. printColumnTable(tableData,'right')
  57. print("====================================================")
  58. printColumnTable(tableData,'left')
  59. print("====================================================")
  60. printColumnTable(tableData,'center')

运行结果:

  1. ======================Row===========================
  2. apples oranges cherries banana
  3. Alice Bob Carol David
  4. dogs cats moose goose
  5. ====================================================
  6. apples oranges cherries banana
  7. Alice Bob Carol David
  8. dogs cats moose goose
  9. ====================================================
  10. apples oranges cherries banana
  11. Alice Bob Carol David
  12. dogs cats moose goose
  13. ======================Column========================
  14. apples Alice dogs
  15. oranges Bob cats
  16. cherries Carol moose
  17. banana David goose
  18. ====================================================
  19. apples Alice dogs
  20. oranges Bob cats
  21. cherries Carol moose
  22. banana David goose
  23. ====================================================
  24. apples Alice dogs
  25. oranges Bob cats
  26. cherries Carol moose
  27. banana David goose

发表评论

表情:
评论列表 (有 0 条评论,414人围观)

还没有评论,来说两句吧...

相关阅读