项目要求:编写一个名为 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. jmeter中监听器及测试结果分析

  2. Nginx负载均衡4种方案

    1.轮询 轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器. 配置的例子如下:http{     upstream sampleapp { ...

  3. #maxlength vs #size form api reference

    #maxlength Used by: password, textfield Description: The maximum amount of characters to accept as i ...

  4. CentOS7安装GLPI资产管理系统

    1.安装配置docker-ce此步骤不在此赘述 2.启动配置MySQL容器 mkdir -p /opt/mysql5.7/{data,conf} docker pull mysql:5.7.31 do ...

  5. llinux day02 基础操作 帮助 文件管理 马

    免密码登录(只是为了方便教学,免了图形界面的密码) 1,Linux免密自动以root身份登录图形化界面,修改etc/gdm/custom.conf 在deamon下面添加两行,注意区分大小写 [dae ...

  6. 吴恩达老师机器学习课程chapter10——推荐算法

    吴恩达老师机器学习课程chapter10--推荐算法 本文是非计算机专业新手的自学笔记,高手勿喷. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十六章. 缺少数学证明,仅作 ...

  7. 4K60帧!RayLink远程控制软件如何帮助设计师远程办公?

    司机在家能远程工作吗?大写的"能"!!!如果你听说过司机远程办公,那你一定对下面这张图不陌生~ (远程办公的叉车司机) 这张图展示的是负责在库房工作的叉车司机在非办公区域远程办公的 ...

  8. python中的platform模块

    platform模块给我们提供了很多方法去获取操作系统的信息: import platform print(platform.platform())# 获取操作系统名称和版本号:macOS-10.14 ...

  9. Vue 解决因网络延时 页面中的{{XXX}}模板直接展示在用户面前,配合v-cloak指令

    v-cloak指令: 1.本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉 v-cloak属性 2.使用 CSS配合v-cloak可以解决网速慢时,页面展示出{{XXX}}模板的问题 案例: ...

  10. gym102586C Sum Modulo

    题意: 给你 \(n,m,k\) 以及\(p_i(1\le i\le n)\) ,保证 \(\sum p_i=1\) 你有一个数 \(X\),一开始 \(X=0\) 每次你会生成一个随机数 \(A\) ...