我正在使用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))
导致这一点(注意'$'和'月'不包括在居中中:
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
答案 0 :(得分:0)
我不能确定没有看到行和宽度变量的来源,但看起来表元素正在用填充插入到字符串中,然后你要添加$和“months”。尝试在格式化的原始表格元素中包含$和“months”。换句话说,请保留您在第一个建议中最初的print语句,然后在行/宽度变量上进行更改。