我正在尝试做一个实践项目,关于如何使无聊的东西自动化。但是我被卡住了。
从本质上讲,当给出如下列表时:
tableData = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]程序应该打印出下表,其中每一列都是右对齐的:
apples Alice dogs
oranges Bob cats
cherries Carol moose
banana David goose这是我的代码:
tableData = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
def printTable():
colWidths = [0] * len(tableData)
for index in range(len(tableData)):
colWidths[index] = len(max(tableData[index], key = len))
for index in range(len(tableData)):
for element in tableData[index]:
print(element.rjust(colWidths[index]))
printTable()我的问题是,每个列表都会正确地正确对齐,但所有内容都打印在单个列中,而不是一个表中,如下所示:
apples
oranges
cherries
banana
Alice
Bob
Carol
David
dogs
cats
moose
goose有没有什么方法可以在for循环的每次迭代后添加一个新列?或者你将如何改进我的代码?
谢谢你的帮助!
发布于 2021-03-24 01:33:53
print()有一个名为end的参数,默认情况下会分配一个换行符。这是在创建换行符。要避免换行,请使用end=""作为参数。
但是,这并不能解决您的问题,因为您的代码被设计为一次输出一列。这不是终端的工作方式。重写代码,一次输出一行。
https://stackoverflow.com/questions/66768307
复制相似问题