我目前正在研究这个快速项目来学习,我半成功地完成了将每个列表打印到列中,但我遇到了打印正确列宽的麻烦。列宽 - 初学者python
fruitNamePets = [ ['apples', 'oranges', 'cherries', 'bananas', 'pineapples', 'mangos'],
['Alice', 'Bob', 'Carol', 'David', 'Mike', 'Alex'],
['dogs', 'cats', 'moose', 'goose', 'deer', 'platypus']
]
def printTable(tableName):
colWidths = [0] * len(tableName)
for i in range(len(tableName[1])):
print ('')
for j in range(len(tableName)):
colWidths[j] = len(max(tableName[j])) + 2
print (str(tableName[j][i]).rjust(colWidths[j], ' '), end='')
printTable(fruitNamePets)
这里是输出
apples Alice dogs
oranges Bob cats
cherries Carol moose
bananas David goose
pineapples Mike deer
mangos Alex platypus
正如你所看到的,我右对齐列和作出的宽度列表的最大长度+2舱,但由于某种原因,中间列只增加+1空间。
感谢您的帮助,我是新来的,所以如果我发布的不正确,请让我知道!
不直接回答你的问题,但Python'.format'方法本身处理了很多这些东西:https://docs.python.org/2/library/string.html#format-specification-mini-语言(特别参见'align'参数);这可能会让你的生活更容易对齐事物。 – val