打印列表中的列表中的列

问题描述 投票:4回答:5

我有一个带有列表的列表,我想在要导入的任何其他模块(即pprint)的列[[w / o中打印它。任务仅对我而言是了解列表的迭代。这是我的列表列表:

tableData = [['a', 'b', 'c', 'd'], ['1', '2', '3', '4'], ['one', 'two', 'three', 'four']]
而且我希望它看起来像这样:

a 1 one b 2 two c 3 three d 4 four

我设法对它的第一行进行了一些硬编码,但是我不知道如何对迭代进行建模。参见:

def printTable(table): print(table[0][0].rjust(4," ") + table[1][0].rjust(4," ") + table[2][0].rjust(4," "))

python list printing multiple-columns
5个回答
4
投票
您可以像这样使用zip()

zip()

您显然可以改善格式(就像@Holt做得很好),但这是基本方法:)

2
投票
您可以使用>>> for v in zip(*tableData): print (*v) a 1 one b 2 two c 3 three d 4 four 来转置表格,然后使用zip来输出行:

zip


0
投票
您要转置此。这在python中最简单。之后,您只需要关心自己的打印格式即可。

formatted string

如果您有一个列表,例如my_list = [('Math',80),('Physics',90),('Biology',50)],那么我们可以说这是3X2矩阵。它的转置将是2X3矩阵。

row_format = '{:<4}' * len(tableData) for t in zip(*tableData): print(row_format.format(*t))

将进行以下输出

[('Math','Physics','Biology'),(80,90,50)]] >>


0
投票
如果您仍然想要可变的字符串,只需一次打印一行:

0
投票
如果要自动使用.rjust,假设您具有相同数目的字符串列表,则可以这样做:
© www.soinside.com 2019 - 2024. All rights reserved.