用tab制作一个python表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用tab制作一个python表相关的知识,希望对你有一定的参考价值。
我有一个关于Python 3.X的问题。我能用.format创建一个漂亮的“表”,但问题是我是否能够使用标签看起来与格式相似?
file = open("students.csv", "r")
students= []
for i in file:
i= i.rstrip()
i_sublist = i.split(",")
students.append(i_sublist)
print("Content")
print("{0:15} {1:15} {2:15}".format("Name", "Surname", "Grade"))
print("{0:15} {1:15} {2:15}".format("-----", "-------", "---"))
for i in students:
for j in i:
print("{0:15}".format(j),"",end="")
print()
file.close()
答案
虽然我没有完全理解你的任务是什么(特别是关于标签),但我会尝试展示一种不使用.format
方法来构建类似表格的方法。假设学生列表如下:
students = [('Arc', 'Circle', 'A'), ('Numan', 'Tuman', 'B'), ('Zeta', 'Beta', 'D'),
('Raptor', 'Strange', 'A'), ('Crazy', 'Bear', 'C')]
Using other method
然后以下函数将打印相似的表:
def context(students):
preamble = [("Name", "Surname", "Grade"),
("----", "-------", "-----")]
message = preamble + students # join two lists together
print("Context")
for line in message:
print(*(elem.ljust(15) for elem in line)) # left justify each element in sublists
从文档:
S.ljust(width[, fillchar]) -> str
返回S左对齐长度为width
的Unicode字符串。使用指定的fill
字符(默认为空格)完成填充。
Your own tabulator
如果您的任务是实现自己的制表器,可以通过以这种方式提供辅助函数来完成:
def tabulator(text, min_field=15):
tabs_to_append = min_field - len(text)
return_string = (text if (tabs_to_append <= 0) else text + " "*tabs_to_append)
return return_string
def context_tabulator(students):
preamble = [("Name", "Surname", "Grade"),
("----", "-------", "-----")]
message = preamble + students # join two lists together
print("Context")
for line in message:
print(*(tabulator(elem, 15) for elem in line))
如果你将它作为context_tabulator(students)
调用它将产生下表:
Context
Name Surname Grade
---- ------- -----
Arc Circle A
Numan Tuman B
Zeta Beta D
Raptor Strange A
Crazy Bear C
应该注意的是,以上所有示例仅显示了一般概念,并且不验证或转换所提供的参数输入。尽管如此,我希望这会对你有所帮助。
以上是关于用tab制作一个python表的主要内容,如果未能解决你的问题,请参考以下文章
python 用于在终端中运行的sublime text 3的简单代码片段制作工具
Android选项卡片段不调用OnCreateView从tab2切换到tab1