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=”“
作为参数


不过,这并不能解决您的问题,因为您的代码设计为一次输出一列。终端不是这样工作的。重写代码,一次输出一行。

不能修改已打印的行。您需要一次打印一整行。好的,谢谢!理解。非常感谢。