将列表列表转换为表格

AT_*_*965 3 python

我有这个列表清单:

tableData = [['apples', 'oranges', 'cherries', 'banana'],
             ['Alice', 'Bob', 'Carol', 'David'],
             ['dogs', 'cats', 'moose', 'goose']]
Run Code Online (Sandbox Code Playgroud)

我必须转换成这个表:

apples      Alice    dogs
oranges       Bob    cats 
cherries    Carol    moose 
banana      David    goose
Run Code Online (Sandbox Code Playgroud)

对我来说,诀窍是将"线"转换成列(即苹果,橙子,樱桃,同一列下的香蕉)

我尝试过不同的选择(A):

for row in tableData:
        output = [row[0].ljust(20)]
            for col in row[1:]:
             output.append(col.rjust(10))
            print(' '.join(output))
Run Code Online (Sandbox Code Playgroud)

选项(B):

方法2

for i in tableData:
    print( i[0].ljust(10)+(str(i[1].ljust(15)))+(str(i[2].ljust(15)))+
    (str(i[3].ljust(15))))    
Run Code Online (Sandbox Code Playgroud)

似乎没有人能解决这个问题.
在此先感谢您的任何建议.

wim*_*wim 5

要转置表格,请使用zip-and-splat技巧.

要左对齐或右对齐单元格,请使用格式规范语言:

>>> for row in zip(*tableData):
...     print '{:<10}{:>7}    {:<10}'.format(*row)
...     
apples      Alice    dogs      
oranges       Bob    cats      
cherries    Carol    moose     
banana      David    goose   
Run Code Online (Sandbox Code Playgroud)


L3v*_*han 1

“翻转”嵌套列表的最简单方法是使用zip

for fruit, name, animal in zip(*tableData):
    print(fruit.ljust(10), name.ljust(10), animal.ljust(10))
Run Code Online (Sandbox Code Playgroud)

这打印:

apples     Alice      dogs
oranges    Bob        cats
cherries   Carol      moose
banana     David      goose
Run Code Online (Sandbox Code Playgroud)