2016-11-02 24 views
1

是否有可能在列中獲得不同的長度?當我嘗試在PrettyTable中使用列表時,出現錯誤:列長度不匹配。因爲一個列表中有更多的項目,那麼另一個列表。不同的列長PrettyTable

實施例:

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

PrettyTable:

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

爲什麼不讓列的長度相同? –

+0

由於列表長度不同,因此其中有10個項目,其他5個。 –

+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) 

,將產生長度最長的列表的序列,填充空s用於較短的列表(作爲獎勵使用循環而不是多個add_column調用)

+0

當我嘗試時出現以下錯誤:例外:列長度0不匹配行數1! –

+0

對不起,這是錯的。看我的編輯。 –

+0

是的,它現在正在工作。感謝您的幫助。 –