Python 自动化无聊的东西-台式打印机
我正在尝试做一个实践项目,研究如何使无聊的事情自动化。但是我被卡住了 基本上,当给出如下列表时:Python 自动化无聊的东西-台式打印机,python,for-loop,Python,For Loop,我正在尝试做一个实践项目,研究如何使无聊的事情自动化。但是我被卡住了 基本上,当给出如下列表时: tableData = [['apples', 'oranges', 'cherries', 'banana'], ['Alice', 'Bob', 'Carol', 'David'], ['dogs', 'cats', 'moose', 'goose']] 该程序应打印出下表,其中每列右对齐: apples Alice dogs oranges
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循环的每次迭代后添加一个新列?或者如何改进我的代码
谢谢你的帮助 有一个名为end
的参数,默认情况下该参数有一个换行符。这将创建换行符。要避免换行,请使用end=”“
作为参数
不过,这并不能解决您的问题,因为您的代码设计为一次输出一列。终端不是这样工作的。重写代码,一次输出一行。不能修改已打印的行。您需要一次打印一整行。好的,谢谢!理解。非常感谢。