不同的列长度PrettyTable

时间:2016-11-02 10:18:46

标签: python

是否有可能在列中获得不同的长度?当我尝试在PrettyTable中使用列表时,我得到错误:列长度不匹配。因为一个列表中有更多项,然后是另一个列表。

示例:

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

PrettyTable:

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

1 个答案:

答案 0 :(得分:0)

使用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调用)