2016-11-02 1 views
1

Ist es möglich, in prettytable unterschiedliche Längen in Spalten zu erhalten? Wenn ich versuche, eine Liste in PrettyTable zu verwenden, erhalte ich den Fehler: Spaltenlänge stimmt nicht überein. Da eine Liste mehr Elemente enthält als die andere Liste.Unterschiedliche Spaltenlänge PrettyTable

Beispiel:

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

Pretty:

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

Warum machen Sie nicht die Spalten die gleiche Länge? –

+0

Da die Listen nicht die gleiche Länge haben, hat man 10 Elemente und die anderen 5. –

+0

Verwenden Sie den Ansatz aus der Antwort unten. –

Antwort

0

Abhilfe dieses Problem zip_longest und ein Füllwerts, eingewickelt in zip wieder Titel hinzufügen mit:

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) 

, die generiert eine Sequenz der längsten Liste der Länge, aufgefüllt mit leeren s Tings für kürzere Listen (und als Bonus verwenden Sie eine Schleife und nicht mehrere add_column Anrufe)

+0

Ich bekomme den folgenden Fehler, wenn ich das versuche: Ausnahme: Spaltenlänge 0 stimmt nicht mit der Anzahl der Zeilen 1 überein! –

+0

Entschuldigung, das war falsch. Siehe meine Bearbeitung. –

+0

Ja, es funktioniert jetzt. Danke für Ihre Hilfe. –

Verwandte Themen