首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中打印数字表格

如何在Python中打印数字表格
EN

Stack Overflow用户
提问于 2016-03-24 18:44:39
回答 3查看 279关注 0票数 0

我正在尝试让Python以我在.txt文件中输入的格式打印一个表,如下所示:

代码语言:javascript
复制
1 2 3 4
5 6 7 8
9 11 12 13

这是我到目前为止的代码:

代码语言:javascript
复制
f = input('Enter the file name: ')
infile = open(f, 'r')
contents = infile.readlines()
infile.close()
table = []

for line in range (len(contents)):
    rows = contents[line].strip().split(' ')
    table.append(rows)
print(table)

这就是我在运行它之后得到的结果,我不确定如何从这里继续。

代码语言:javascript
复制
[['1', '2', '3', '4'], ['5', '6', '7', '8'], ['9', '11', '12', '13']]

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2016-03-24 18:52:21

这一切都与格式化有关。如果你用英语解释你想要什么,那么你会看到代码自然地跟在后面。

您希望在自己的行上打印每行数据,每个元素用空格分隔:

代码语言:javascript
复制
def print_table(table):
    for row in table:
        print(' '.join(row))

调用此函数以显示数据。

另一个快速的解决方案是使用pprint,这是一个漂亮的打印库。

代码语言:javascript
复制
from pprint import pprint

...
pprint(table)

整个过程,为了删除不必要的代码和复制而进行了优化:

代码语言:javascript
复制
def print_table(table):
    for row in table:
        print(' '.join(row))

def main():
    f = input('Enter the file name: ')

    table = []
    with open(f, 'r') as infile:
        for line in infile:
            row = line.strip().split(' ')
            table.append(row)

    print_table(table)

if __name__ == '__main__':
    main()

提示:

  • 使用with来避免手动关闭文件并确保其关闭,即使在凌晨的异常情况下也是如此。
  • 无需将整个文件读取到内存中-只需使用for循环来迭代文件对象本身中的每一行。
  • 使用函数!

<代码>F213

请注意,如果您想要开始将数据用作数字,则需要对读取的每个元素调用int -它们当前都是字符串。您可以使用map函数轻松完成此操作:

代码语言:javascript
复制
row = map(int, line.strip().split(' '))
票数 0
EN

Stack Overflow用户

发布于 2016-03-24 19:25:07

尝试以下代码:

代码语言:javascript
复制
f = input('Enter the file name: ')
infile = open(f, 'r')
contents = infile.readlines()
infile.close()
table = []

for line in range (len(contents)):
    rows = contents[line].strip().split(' ')
    table.append(rows)

for elem in table:
    print(*elem)

输出:

代码语言:javascript
复制
1 2 3 4 
5 6 7 8 
9 11 12 13
票数 0
EN

Stack Overflow用户

发布于 2016-03-24 18:49:44

尝试此操作,而不是打印(表):

代码语言:javascript
复制
for line in table:
    wholeline = ""
    for i in line:
         wholeline += str(i)
    print(wholeline)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36198304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档