ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

项目:表格打印(字符图网格进阶、rjust、列表中最长的字符串长度)

2021-08-09 01:04:17  阅读:372  来源: 互联网

标签:rjust 进阶 max 网格 len 列表 phy printTable tableData


项目要求:编写一个名为 printTable()的函数,它接受字符串的列表的列表,将它显示在组织良好的表格中,每列右对齐。

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

打印成以下格式

   apple Alice  dogs 
 oranges   Bob  cats 
cherries Carol moose 
  banana David goose 

与之前的字符图网格很类似

http://www.jdlhm.com/?p=960

 

tableData = [['apple', 'oranges', 'cherries', 'banana'],
             ['Alice', 'Bob', 'Carol', 'David'],
             ['dogs', 'cats', 'moose', 'goose']]


def printTable():
    max_phy = []
    for items in tableData:
        max_char = len(max(items, key=len))
        max_phy.append(max_char)
    for j in range(len(tableData[0])):
        for i in range(len(tableData)):
            print(tableData[i][j].rjust(max_phy[i]), end=' ')
        print()
printTable()

1. 定义一个空列表,用来tableData列表中,每个子列表里长度最大的那个

2. 假定列表里的小列表为items,以字符串长度(len)为key,求出每个items中最长的字符串长度

3. 将每个最大长度放入到空列表

4. 根据每个items中最大长度进行右对齐,每打印一个字符串结尾加空格

5. 当打印完一行,打印一个换行符

6. 求列表中最长的字符串长度还有一种写法(不知道是不是固定写法,去问一下)

tableData = [['apple', 'oranges', 'cherries', 'banana'],
             ['Alice', 'Bob', 'Carol', 'David'],
             ['dogs', 'cats', 'moose', 'goose']]


def printTable():
    max_phy = []
    for item_out in tableData:
        max_char = max(len(item_in) for item_in in item_out)
        max_phy.append(max_char)
    for j in range(len(tableData[0])):
        for i in range(len(tableData)):
            print(tableData[i][j].rjust(max_phy[i]), end=' ')
        print()
printTable()

 

标签:rjust,进阶,max,网格,len,列表,phy,printTable,tableData
来源: https://www.cnblogs.com/p36606jp/p/15113950.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有