1

我正在使用python逐行打印出列表的内容:

header = ['State', 'AVG Loan Size', 'AVG Interest Rate', 'AVG Loan Duration']
widths = [ len(col) for col in header ]
print '{}\t{}\t{}\t{}'.format(*(header + widths))
for line in output:
    print '{0:^{4}}\t{1:^{5},.0f}\t{2:^{6},.1f}\t{3:^{7},.0f}'.format(*(line + widths))

这给了我这个:

State   AVG Loan Size   AVG Interest Rate   AVG Loan Duration
 CA        10,651             12.1                 41        
 TX        10,692             12.1                 42        
 VA        10,693             12.1                 42        
 GA        10,675             12.1                 42 

我现在想在第二列的开头放一个美元符号,在最后一列的末尾放一个“月”。我怎样才能做到这一点?我不仅需要为替换定义宽度和居中,还需要为与文字字符连接的替换定义宽度和居中。

例如,此代码不起作用:

print '{0:^{4}}\t${1:^{5},.0f}\t{2:^{6},.1f}\t{3:^{7},.0f} months'.format(*(line + widths))

导致这个(注意'$'和'months'如何不包括在居中:

State   AVG Loan Size   AVG Interest Rate   AVG Loan Duration
 CA     $   10,651            12.1                 41         months
 TX     $   10,692            12.1                 42         months
 VA     $   10,693            12.1                 42         months
 GA     $   10,675            12.1                 42         months
4

1 回答 1

0

如果没有看到 line 和 width 变量的来源,我无法确定,但似乎表格元素被插入到带有填充的字符串中,然后你添加了 $ 和“月”。尝试在您以格式插入的原始表格元素中包含 $ 和“月”。换句话说,保留您最初在第一个建议中的打印语句,然后在行/宽度变量上进行更改。

于 2013-09-03T03:34:36.477 回答