【发布时间】:2011-09-23 21:52:16
【问题描述】:
我有以下 Python 2.x 代码,它为表格数据生成标题行:
headers = ['Name', 'Date', 'Age']
maxColumnWidth = 20 # this is just a placeholder
headerRow = "|".join( ["%s" % k.center(maxColumnWidth) for k in headers] )
print(headerRow)
此代码输出以下内容:
Name | Date | Age
这正是我想要的 - 数据的格式很好,并且在宽度为 maxColumnWidth 的列中居中。 (maxColumnWidth 是在程序前面计算的)
根据the Python docs,你应该可以在Python3中用花括号字符串格式做同样的事情,如下:
headerRow = "|".join( ["{:^maxColumnWidth}".format(k) for k in headers] )
但是,当我这样做时,我会得到以下信息:
ValueError: Invalid conversion specification
但是,如果我这样做:
headerRow = "|".join( ["{:^30}".format(k) for k in headers] )
一切正常。 我的问题是:如何在格式字符串中使用变量而不是整数?:
headerRow = "|".join( ["{:^maxColumnWidth}".format(k) for k in headers] )
【问题讨论】:
-
“我的问题是:我在这条线上做错了什么:”你有什么不喜欢的?
-
这是一个非常不同的问题。我无法跟随从原始问题到这个问题的跳跃。我很震惊。 “为清楚起见而编辑”是错误的。它被修改为完全不同。
-
@S.Lott - 那是因为我花了一段时间才弄清楚我真正想要的是什么。
标签: migration python-3.x python