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迭代器实例简析
Sep 25 Python
Python通过正则表达式选取callback的方法
Jul 18 Python
对于Python中RawString的理解介绍
Jul 07 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 Python
python+Splinter实现12306抢票功能
Sep 25 Python
对python For 循环的三种遍历方式解析
Feb 01 Python
python抖音表白程序源代码
Apr 07 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
Django获取应用下的所有models的例子
Aug 30 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 Python
使用Python拟合函数曲线
Apr 14 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
在PHP中使用灵巧的体系结构
2006/10/09 PHP
用php+mysql一个名片库程序
2006/10/09 PHP
一个好用的分页函数
2006/11/16 PHP
PHP经典的给图片加水印程序
2006/12/06 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
php实现的双色球算法示例
2017/06/20 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
js仿微信抢红包功能
2020/09/25 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python opencv3实现人脸识别(windows)
2018/05/25 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
小学教师读书活动总结
2014/07/08 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang