为了打印表格数据的标题,我想使用一个格式字符串
我查看了这个,但是像
这种方法可行:
我必须在格式字符串中使用单独的名称作为宽度
此外,我认为
line
和一个规范来指定列宽 w1, w2, w3
(如果可能的话,甚至可以使用 w = x, y, z
)。我查看了这个,但是像
tabulate
这样的工具不允许我像 format
那样对齐列。这种方法可行:
head = 'eggs', 'bacon', 'spam'
w1, w2, w3 = 8, 7, 10 # column widths
line = ' {:{ul}>{w1}} {:{ul}>{w2}} {:{ul}>{w3}}'
under = 3 * '='
print line.format(*head, ul='', w1=w1, w2=w2, w3=w3)
print line.format(*under, ul='=', w1=w1, w2=w2, w3=w3)
我必须在格式字符串中使用单独的名称作为宽度
{w1}
,{w2}
,...吗?像 {w[1]}
,{w[2]}
这样的尝试会导致 KeyError
或 关键字不能是表达式
。此外,我认为
w1=w1, w2=w2, w3=w3
不太简洁。有更好的方法吗?
w = {'w1': 8, 'w2': 7, 'w3': 10}
,然后调用line.format(..., **w)
。你甚至可以根据[8, 7, 10]
动态构建字典 -w = {'w{}'.format(index): value for index, value in enumerate([8, 7, 10], 1)}
。 - jonrsharpe