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

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

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

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

示例代码1:

  1. import copy
  2.  
  3. def count_width(the_list):
  4. new_list = copy.deepcopy(the_list)
  5. col_widths = [0]*len(the_list)
  6. i = 0
  7. while i < len(new_list):
  8. new_list[i].sort(key=lambda x: len(x), reverse=True)
  9. col_widths[i] = new_list[i][0]
  10. i = i+1
  11. return col_widths
  12.  
  13. def list_ljust(the_list):
  14. widths = count_width(the_list)
  15. for j in range(len(the_list[0])):
  16. for i in range(len(the_list)):
  17. print(the_list[i][j].ljust(len(widths[i])), end=' ')
  18. print('\r')
  19.  
  20. table_data = [['apples', 'oranges', 'cherries', 'banana'],
  21. ['Alice', 'Bob', 'Carol', 'David'],
  22. ['dogs', 'cats', 'moose', 'goose']]
  23. list_ljust(table_data)  

sort方法:

lambda函数:

示例代码2:

  1. def count_widths(the_list):
  2. col_widths = [0]*len(the_list)
  3. for i in range(len(the_list)):
  4. for j in range(len(the_list[0])):
  5. if len(the_list[i][j]) > max_len:
  6. max_len = len(the_list[i][j])
  7. col_widths[i] = max_len
  8. return col_widths
  9.  
  10. def list_ljust(the_list):
  11. widths = count_widths(the_list)
  12. print(widths)
  13. for j in range(len(the_list[0])):
  14. for i in range(len(the_list)):
  15. print(the_list[i][j].ljust(widths[i]), end=' ')
  16. print('\r')
  17.  
  18. table_data = [['apples', 'oranges', 'cherries', 'banana'],
  19. ['Alice', 'Bob', 'Carol', 'David'],
  20. ['dogs', 'cats', 'moose', 'goose']]
  21. list_ljust(table_data)

python实例5-表格打印的更多相关文章

  1. (转)Python实例手册

    原文地址:http://hi.baidu.com/quanzhou722/item/cf4471f8e23d3149932af2a7 实在是太好的资料了,不得不转 python实例手册 #encodi ...

  2. 转载 python实例手册

    python实例手册 #encoding:utf8# 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请 ...

  3. 【转载】python实例手册

    今天写爬虫的时候遇到了问题,在网上不停地查找资料,居然碰到两篇好文章: 1.python实例手册   作者:没头脑的土豆 另一篇在这:shell实例手册 python实例手册 #encoding:ut ...

  4. Python实例手册

    在电脑中突然发现一个这么好的资料,雪松大神制作,不敢独享,特与大家共享.连他的广告也一并复制了吧! python实例手册 #encoding:utf8 # 设定编码-支持中文 0说明 手册制作: 雪松 ...

  5. python 处理 Excel 表格

    see: http://www.cnblogs.com/sunada2005/p/3193300.html 一.可使用的第三方库 python中处理excel表格,常用的库有xlrd(读excel)表 ...

  6. 【NLP】Python实例:申报项目查重系统设计与实现

    Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...

  7. 【NLP】Python实例:基于文本相似度对申报项目进行查重设计

    Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...

  8. Python实例100个(基于最新Python3.7版本)

    Python3 100例 原题地址:   http://www.runoob.com/python/python-100-examples.html    git地址:    https://gith ...

  9. Python读取Excel表格

    前言:需要进行自动化办公或者自动化测试的朋友,可以了解下此文,掌握Python读取Excel表格的方法. 一.准备工作: 1.安装Python3.7.0(官网下载安装包) 2.安装Pycharm(官网 ...

随机推荐

  1. niginx相关命令及代理配置

    安装 in mac https://www.cnblogs.com/meng1314-shuai/p/8335140.html Nginx相关命令 mac下启动: 通过brew 安装install 后 ...

  2. 使用Navicat连接管理远程linux服务器上的mysql数据库

    第一步:选择连接,选择mysql 第二步:填写下面弹出框的信息:连接名随便写,主机名或IP地址:写上服务器的ip.  端口不变  用户名不变.  密码:输入服务器数据库的密码12345678. 接着测 ...

  3. <scrapy爬虫>基本操作

    scrapy选择器的用法 //selector可以加可以不加 response.selector.xpath("//title/text()").extract_first() r ...

  4. C# 16进制与字符串、字节数组之间的转换(串口通讯中)

    1.c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString( ...

  5. LINUX用户和用户组操作命令

    Id Finger Pwck 检查/etc/passwd配置文件内的信息与实际主文件夹是否存在,还可比较/etc/passwd和/etc/shadow的信息是否一致,另外如果/etc/passwd中的 ...

  6. HDU3480 Division——四边形不等式或斜率优化

    题目大意 将N个数分成M部分,使每部分的最大值与最小值平方差的和最小. 思路 首先肯定要将数列排序,每部分一定是取连续的一段,于是就有了方程 $\Large f(i,j)=min(f(i-1,k-1) ...

  7. Android开发 从代码里设置Drawable图片不显示的问题

    问题描述 我们从代码里获得Drawable在设置给View时会发现,图片不显示的问题.比如如下代码: Drawable drawable = getResources().getDrawable(R. ...

  8. dea死锁处理和大事务处理

    死锁处理流程: show full processlist; # 获得当前所有数据库连接 select id, db, user, host, command, time, state, info f ...

  9. 2016.8.19上午初中部NOIP普及组比赛总结

    2016.8.19上午初中部NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1338 这次总结发得有点晚啊!我在这里解释一下, 因为浏览器的问 ...

  10. 在python2中的编码

    在python2中的编码 #_author:star#date:2019/10/29'''字符编码:ASCII:只能存英文和拉丁字符,gb2312:只能6700中文,1980年gbk1.0:存了200 ...