我有以下的Python 2.x的代碼,其產生一個標題行表格數據:在Python str.format()轉換動態的,很好地格式化表格數據
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 - 編輯爲清晰 –
這是一個非常不同的問題。我無法從原始問題跳轉到這個問題。我很震驚。 「爲了清晰而編輯」是錯誤的。它被修改爲完全不同。 –