项目要求:编写一个名为 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、列表中最长的字符串长度)的更多相关文章

  1. Collatz 序列、逗号代码、字符图网格

    1.collatz序列 编写一个名为 collatz()的函数,它有一个名为 number 的参数.如果参数是偶数, 那么 collatz()就打印出 number // 2,并返回该值.如果 num ...

  2. HDU4514(非连通图的环判断与图中最长链)

    题目:设计风景线 题意:给定一个无向图,图可能是非连通的,如果图中存在环,就输出YES,否则就输出图中最长链的长度. 分析:首先我们得考虑这是一个无向图,而且有可能是非连通的,那么就不能直接像求树那样 ...

  3. ASCII 非打印字符

    项目出了问题,因为AscII非打印字符的原因,后来找了一下啊ASCII的非打印字符,总共有31个,然后我们直接全部替换成问号了. 解决方式为先找到非打印字符,这是我从网上找的非打印字符表: 进制 十六 ...

  4. 打印十字图 JAVA 递归实现

    这个是我自己想的,头疼了一个下午,不过还好.做出来了.在网上找这道题但没有找到用递归的做法. /*递归思想实现 * 标题:打印十字图 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可 ...

  5. 蓝桥杯 历届试题 PREV-2 打印十字图

    历届试题 打印十字图   时间限制:1.0s   内存限制:256.0MB 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并 ...

  6. Base64就是一种 基于64个可打印字符来表示二进制数据的表示方法

    Base64编码是从二进制到字符的过程. Base64编码主要用在传输.存储.表示二进制等领域,还可以用来加密,但是这种加密比较简单. byte[] byteArray = Encoding.UTF8 ...

  7. java实现 历届试题 蓝桥杯 打印十字图

    历届试题 打印十字图 题目描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg) 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 为了能 ...

  8. 从零开始编写自己的C#框架(10)——项目实施计划与甘特图

    不知不觉本系列已经写了一个月,编码前的各项工作到此也终于结束了.回头看看这一个月走过来,白天上班晚上码字查资料,写写改改,挺不容易的.很多时候有些知识会用,知道是怎么回事,但并不等于能写出来.错别字. ...

  9. 微信公众号API返回不可打印字符的处理。

    引言 在使用微信公众号的"批量获取用户基本信息"API时,发现在某些时候不能使用php的json_decode转为数组,打印出curl获取到的内容中,发现了几个不可打印字符.相信不 ...

  10. Java 图片转换为字符图 CharMaps (整理)

      /* * Java 图片转换成字符图 CharMaps (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * * @(#)CharMaps.java 2014/1/16 * 1.这个一 ...

随机推荐

  1. C++11 变长参数模板 & 如何展开变长参数

    https://blog.csdn.net/CodeBowl/article/details/119902935 通过typename ... Args指定变长参数. 通常通过递归展开各个参数, 使用 ...

  2. Win10使用打印机0x0000011b错误 如何处理(没有KB5005565补丁如何解决??)

    1.排查问题 win10连接打印机共享错误显示0x0000011b怎么解决?很多用户在更新了windows系统的最新补丁后,突然发现自己打开打印机的时候提示"无法连接到打印机,错误为0x00 ...

  3. 为什么常用Formdata对象来上传图片

    一.上传的数据体格式Content-Type 1.application/x-www-form-urlencoded 2.application/json 3.multipart/form-data ...

  4. PLSQL中文乱码问题(显示问号)解决办法

    select userenv('language') from dual; 在环境变量的系统变量中添加配置: NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 这个 ...

  5. IntelliJ IDEA 生成serialVersionUID

    1.设置Settings-->Editor->Inspections 2.实现Serializble

  6. windows环境go安装和goland激活

    1. go环境安装 1.1. go安装包下载 https://golang.google.cn/dl/ https://studygolang.com/dl 1.2. 安装go环境 1.2.1. 点击 ...

  7. TypeScript 声明文件

    TypeScript 声明文件 TypeScript 作为 JavaScript 的超集,在开发过程中不可避免要引用其他第三方的 JavaScript 的库.虽然通过直接引用可以调用库的类和方法,但是 ...

  8. element ui 分页

    修改选中页码的样式: .el-pager .active{ color:red !important;//选中 } .el-pager .number:hover{ color:red !import ...

  9. sql-SQL Prompt

    本人用的是win10系统,这里也着重介绍win10系统的激活方式 激活方式: 1.首先系统HOSTS文件添加以下屏蔽网络 127.0.0.1 red-gate.com 127.0.0.1 www.re ...

  10. js模块化 CommonJS和AMD/CMD ES6模块化

    ES6之前已经出现了js模块方案,有CommonJS和AMD规范.commonjs实现同步加载应用于服务器,如nodejs.AMD为异步加载应用于浏览器,如requirejs. ES6在语言层面上模块 ...