有人指出你的問題可能是重複的,但有問題的答案看起來有點舊......自從引入新的字符串格式mini語言,你可以單獨使用str.format
來做這種事情。
假設您的列表看起來像:
data = [
["John" , 15.00, 1.20, 10.00, 8.00],
["Robert", 45.00, 6.70, 24.00, 14.00],
["Duncan", 10.00, 5.40, 5.00, 10.00],
["Steven", 30.00, 6.50, 30.00, 16.00],
]
您可以使用格式方法:
# Headers, centered
print("{: ^15s} {: ^15s} {: ^15s} {: ^15s} {: ^15s}".format(
"Name", "Age", "Height", "Pay Rate", "Grade")
)
# Dashes (not very readable, but I'm lazy)
print(" ".join([("-" * 15)] * 5))
# Lines
for line in data:
print("{:15s} {: 15.2f} {: 15.2f} {: 15.2f} {: 15.2f}".format(*line))
的格式規範(見format specification mini-language):
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= integer
precision ::= integer
type ::= (pretty much like printf)
^
手段居中。
結果應該是這樣的:
Name Age Height Pay Rate Grade
--------------- --------------- --------------- --------------- ---------------
John 15.00 1.20 10.00 8.00
Robert 45.00 6.70 24.00 14.00
Duncan 10.00 5.40 5.00 10.00
Steven 30.00 6.50 30.00 16.00
使這一短多可重複使用的留作練習。
你的名單是怎樣的? – spiehr
在繼續之前,我會建議您使用字典而不是列表。當你開始填充表格時,可讀性更強,更容易混淆。 '人'['John'] ['Height']'比'people [0] [1]'更透明。然後,「對於人:對attribs中的attrib:print(人[person] [attrib])'加上任何格式化。 – OJFord