python 6.7 编写printTable()函数表格打印(完整代码)


Posted in Python onMarch 25, 2020

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

输入:

tableData = [[‘apple',‘orange',‘cherry',‘banana'],
[‘Alice',‘Bob',‘Cathy',‘David'],
[‘dog',‘cat',‘bird',‘duck']]

输出:

python 6.7 编写printTable()函数表格打印(完整代码)

因此首先要找到每一个内层列表中最长的字符串长度,因为我们可以对比tableData列表和输出的截图。不难发现输出的第一行为内层列表的首项,第二行为每个内层列表的第二项;第一列为第一个内置列表的所有项并且是右对齐(与最长项对齐),因此:

colWidths = [0]*len(tableData)#colWidths列表中每个元素放置每个内置列表的最长字符串长度
len1 = 0
#分别求列表的每一个内置列表中最长的字符串的长度
for i in range(len(tableData)):
 for j in range(len(tableData[i])):
  if len(tableData[i][j]) > colWidths[i]:#找最长
   colWidths[i] = len(tableData[i][j])

其次我们可以看到,打印得到的结果为一个四行三列的表格,因此可以得出函数printTable()中可以有一个两层的嵌套循环,第一层循环长度为4,第二层循环长度为3。而tableData列表共有3个内置列表,每个内置列表共有4项,因此可以以内层列表的长度为第一层循环长度,外层列表的长度为第二层循环的长度。
同时表格的每一列均为右对齐,对齐标准为内层列表的最长项的长度,因此每一次对齐参数可以直接使用colWidths对应的值。

def printTable(List1,List2):
 #第一层循环
 for i in range(len(List1[0])):
  #第二层循环
  for j in range(len(List1)):
   print(List1[j][i].rjust(int(List2[j])),end=' ')
  print()

完整代码

def printTable(List1,List2):
 #第一层循环
 for i in range(len(List1[0])):
  #第二层循环
  for j in range(len(List1)):
   print(List1[j][i].rjust(int(List2[j])),end=' ')#打印完一行再换行
  print()

tableData = [
 ['apples','oranges','cherries','banana'],
 ['Alice','Bod','Carol','David'],
 ['dogs','cats','moose','goose']
    ]
colWidths = [0]*len(tableData)#colWidths列表中每个元素放置每个内置列表的最长字符串长度
len1 = 0
#分别求列表的每一个内置列表中最长的字符串的长度
for i in range(len(tableData)):
 for j in range(len(tableData[i])):
  if len(tableData[i][j]) > colWidths[i]:
   colWidths[i] = len(tableData[i][j])

printTable(tableData,colWidths)

总结

到此这篇关于python 6.7 编写一个名为printTable()的函数 表格打印的文章就介绍到这了,更多相关python printTable()函数 表格打印内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
Python实现Kmeans聚类算法
Jun 10 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
详解Python发送email的三种方式
Oct 18 Python
详解js文件通过python访问数据库方法
Mar 03 Python
自定义django admin model表单提交的例子
Aug 23 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 Python
如何使用pdb进行Python调试
Jun 30 Python
python实现人机五子棋
Mar 25 #Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 #Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 #Python
python自动下载图片的方法示例
Mar 25 #Python
Python短信轰炸的代码
Mar 25 #Python
PyQt5事件处理之定时在控件上显示信息的代码
Mar 25 #Python
基于Python计算圆周率pi代码实例
Mar 25 #Python
You might like
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
一段实用的php验证码函数
2016/05/19 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
jquery 事件对象属性小结
2010/04/27 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
详解微信小程序调用支付接口支付
2019/04/28 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
详解C++编程中一元运算符的重载
2016/01/19 Python
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
python 函数中的参数类型
2020/02/11 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
Python内置异常类型全面汇总
2020/05/28 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
国贸专业个人求职信范文
2014/01/08 职场文书
趣味游戏活动方案
2014/02/07 职场文书
大专生求职信
2014/06/29 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
2014群众路线学习笔记
2014/11/06 职场文书