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

输入:

tableData = [[‘apple',‘orange',‘cherry',‘banana'],

[‘Alice',‘Bob',‘Cathy',‘David'],

[‘dog',‘cat',‘bird',‘duck']]

输出:

因此首先要找到每一个内层列表中最长的字符串长度,因为我们可以对比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博客!

python print table_python 6.7 编写printTable()函数表格打印(完整代码)相关推荐

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

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

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

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

  3. Java web+MySQL编写简易候选人投票(完整代码)

    Java web+MySQL编写简易候选人投票(完整代码) 代码实现效果,自己选的图片太大了,没有做更改,将就看就行 项目用到的三个jar包自己导入就行 代码结构如下图 Candidate中的代码 p ...

  4. Python编程,使用turtle画出漂亮的雪花--完整代码绘画实现洁白的雪绒花~~

    Python编程,使用turtle画出漂亮的雪花--完整代码实现洁白的雪绒花~~ Python中turtle库,可以方便的让你实现各种各样的功能.简单易用,有的时候能够创作出,你想像不到的漂亮图案.今 ...

  5. Python练习题——第九题:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

    Python练习题第九题 题目: 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+-+1/n,当输入n为奇数时,调用函数1/1+1/3+-+1/n #2019/12/26/18:16def f ...

  6. python 数据分析找到老外最喜欢的中国美食【完整代码】

    一.环境及依赖 语言:python3.8 抓取:selenium 代理:ipide **注:**想要完整代码的在末尾,注意新手建议慢慢看完.在此提示一下本篇文章的编写步骤:1.获取数据.2.翻译.3. ...

  7. Python基于tk界面的万年历+阳历阴历(附完整代码)

    一.介绍tkinter并下载 tkinter tkinter(Tk interface)是Python的标准GUl库,支持跨平台的GUl程序开发.tkinter适合小型的GUl程序编写,也特别适合初学 ...

  8. python读取pdf并写入excel_Python读取pdf表格写入excel代码方法

    本篇文章小编给大家分享一下Python读取pdf表格写入excel代码方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 避免CV大法 pdf 文件的 ...

  9. Python实战-新能源王者宁德时代股权穿透研究(附完整代码)

    继上一篇对贵州茅台和华能信托的股权穿透研究后,又持续对代码做了优化更新,本篇研究新能源王者宁德时代 目录 1.查找网站爱企查 2.搜索新能源王者宁德时代 2.1 company_name 参数是:宁德 ...

最新文章

  1. 让思维导图改变我们的工作和生活吧
  2. 第二届全国大学生智能汽车竞赛获奖名单
  3. 鼠标移动区域局部放大
  4. Linux free命令
  5. pymysql安装_第八章 nova组件安装2
  6. xshell搭建宝塔没有远程命令密码框框弹出来_服务器安装宝塔控制面板+wordpress搭建个人网站...
  7. 重建AD域控制器的DNS服务器
  8. B75经典门户商业版discuz模板
  9. 查看 php yii脚本位置,Yii框架分析(一)入口脚本index.php的启动过程剖析
  10. 让ubuntu使用root帐号并让winscp以root身份登录
  11. leetcode331. Verify Preorder Serialization of a Binary Tree
  12. win10休眠_这样设置以后,WIN10比WIN7运行更流畅
  13. Windows科研工具
  14. 上海十大it外包公司
  15. Android Studio Menu item 的简单使用
  16. 2023年北京理工大学理论力学考研上岸前辈备考经验指导
  17. FX5u控制4个伺服,一个完整的项目 回原点、JOG手动、绝对定位、相对定位、控制等部分
  18. 数据链路层 PPP协议工作过程
  19. 数据结构实验-学生信息表
  20. 移动网络简介与RRC

热门文章

  1. git push错误解决方案
  2. GET请求缓存问题及解决方案
  3. 终于解决“百年一遇”奇怪问题
  4. Win7 IIS7 HTTP 错误 404.2 - Not Found解决方法
  5. 树莓派-解决apt-get upgrade速度慢的方法[更换阿里云源]
  6. Win11如何添加过时硬件?Win11添加过时硬件的方法
  7. win11开机记录如何查看 Windows11查看开机记录的设备方法
  8. Android实战经验之图像处理及特效处理的集锦
  9. aidl远程服务调用Android,报错:Process 'command 'F:\Android\SDK\build-tools\29.0.0\aidl.exe''
  10. 配置映射文件中使用的类的类型别名typeAliases