【问题标题】:Format strings to make 'table' in Python 3在 Python 3 中格式化字符串以制作“表格”
【发布时间】:2014-11-28 22:07:15
【问题描述】:

现在我正在使用print(),调用存储在元组中的我想要的变量,然后使用:print(format(x,"<10s")+ format(y,"<40s")...) 格式化它们,但这给我的输出未以列形式对齐。如何使每一行的元素对齐?

所以,我的代码用于存储学生详细信息。首先,它接受一个字符串并返回一个元组,其组成部分如下:(name,surname,student ID, year)。
它从有关学生详细信息的长文本文件中读取这些详细信息,然后通过 tuplelayout 函数(将格式化元组的位)解析它们,并将结果制成表格。
因此,tuplelayout 函数的参数是一个元组,其形式为:
surname | name | reg number | course | year

【问题讨论】:

    标签: python formatting tabular


    【解决方案1】:

    如果您要解压元组,只需使用单个 str.format 并根据需要使用 format-specification-mini-language 证明输出:

    l = [(10,1000),(200,20000)]
    
    for x,y in l:
        print("{:<3} {:<6}".format(x,y))
    
    10  1000  
    200 20000 
    

    【讨论】:

    • 这不适合我的代码,因为您使用的是元组列表。如果你只在一个元组上尝试它,那么你会得到一个错误:“ValueError: need more than 1 value to unpack”,我不知道如何解决这个问题。有什么帮助吗?
    • 好吧,如果你只有一个元素,你不能有 x 和 y 变量,你可以检查你的元组是否有一个或两个项目,x 和 y 在你自己的代码中应该是什么?
    • 我的代码也适用于单个元组,但我看不出单个元组将如何形成表格或为什么需要证明单个元素的合理性
    • 所以,我的代码用于存储学生详细信息。首先,它接受一个字符串并返回一个元组,其组成部分如下:(name,surname,student ID, year)。它从有关学生详细信息的长文本文件中读取这些详细信息,然后通过 tuplelayout 函数(将格式化元组的位)解析它们,并将结果制成表格。因此,tuplelayout 函数的参数是一个元组,其形式为:surname |姓名 |注册号 |课程 |年我可以简单地
    • 我可以直接使用print("{:&lt;10} {:&lt;22}{:&lt;7}{:&lt;5}{:&lt;5}".format(tple))吗?
    【解决方案2】:

    我的外壳更改了字体设置,因此对齐已关闭。返回字体:"Courier",一切正常。
    对不起。

    【讨论】:

      猜你喜欢
      • 2012-12-06
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多