首页 > 解决方案 > 如何将列表列表打印成合理的表格格式

问题描述

我希望能够使用函数将列表列表(我们可以假设内部列表的长度相同)转换为对齐表。

到目前为止,我已经尝试过以下方法,但这并不能证明该表的合理性。

我还需要了解 zip 在做什么?使用 *v 时我总是可以解压吗?

我能解释一下为什么我需要做 *v 来解压元组,而不是在下面的代码中使用 *Data 吗?

def printTables(Data):
    for v in zip(*Data):
        print(*v)          

printTables(tableData)



Input:
tableData = [['apples', 'oranges', 'cherries', 'banana'],
             ['Alice', 'Bob', 'Carol', 'David'],
             ['dogs', 'cats', 'moose', 'goose']]

Output:

apples Alice  dogs
 oranges   Bob  cats
cherries Carol moose
  banana David goose

标签: pythonpython-3.xnested-listspython-3.7

解决方案


使用pandas将解决您的所有问题

import pandas as pd

df = pd.DataFrame(tableData).transpose()
print(df)

          0      1      2
0    apples  Alice   dogs
1   oranges    Bob   cats
2  cherries  Carol  moose
3    banana  David  goose

本机 Python

for i, j, k in zip(*tableData):
    print('{:<12} {:<12} {:<12}'.format(i, j, k))

apples       Alice        dogs
oranges      Bob          cats
cherries     Carol        moose
banana       David        goose

推荐阅读