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中的输入和输出功能进行读取和写入的教程
Apr 14 Python
星球大战与Python之间的那些事
Jan 07 Python
python基于物品协同过滤算法实现代码
May 31 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
python修改字典键(key)的方法
Aug 05 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
解决django model修改添加字段报错的问题
Nov 18 Python
Python搭建HTTP服务过程图解
Dec 14 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
学习Python需要哪些工具
Sep 04 Python
Python HTMLTestRunner如何下载生成报告
Sep 04 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
PHP strtok()函数的优点分析
2010/03/02 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
面向对象的javascript(笔记)
2009/10/06 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
安装vue-cli的简易过程
2018/05/22 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
MySQL最常见的操作语句小结
2015/05/07 Python
Python统计单词出现的次数
2018/04/04 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
python实现大文本文件分割
2019/07/22 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
Python实现搜索算法的实例代码
2020/01/02 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
Python实现播放和录制声音的功能
2020/08/12 Python
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
C语言面试题
2013/05/19 面试题
DELPHI面试题研发笔试试卷
2015/11/08 面试题
银行门卫岗位职责
2013/12/29 职场文书
计生专干事迹
2014/05/28 职场文书
政风行风整改报告
2014/11/06 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python
Python 图片添加美颜效果
2022/04/28 Python