是否可以在prettytable中获得不同的列长度?当我尝试在PrettyTable中使用列表时,出现错误:列长度不匹配。因为一个列表中包含的项目比另一个列表中的项目多。

例:

ListA = ("111", "222")
ListB = ("333")


PrettyTable:

t = Prettytable([])
t.add_column('Test1', ListA)
t.add_column('Test2', ListB)
print(t)

最佳答案

使用zip_longest和填充值解决问题,再次包裹在zip中以添加标题:

import itertools

titles = ('Test1','Test2')
ListA = ("111", "222")
ListB = ("333",)

t = Prettytable([])

for title,lst in zip(titles,itertools.zip_longest(ListA,ListB,fillvalue="")):
    t.add_column(title,lst)


这将生成一个长度最长的列表序列,并用空字符串填充较短的列表(此外,您可以使用循环而不是多次add_column调用)

10-05 19:35