Ich experimentierte mit dem Lesen einer tabulatorgetrennten Tabelle in ein Listenfeld. I verwendet:Python - Listen - Formatierung als Tabelle
with open('/home/data.txt') as textFile:
data = [line.split() for line in textFile]
die
ein Druck gibt mir fein gearbeitet (Hinzufügen von Zeilenumbrüchen zur besseren Lesbarkeit):
[('Col1', 'Col2', 'Col3', 'Col4'),
('A', 1, 2, 3),
('B', 4, 5, 6),
('C', 11, 22, 33),
('D', 44, 55, 66),
('E', 1, 2),
('F', 1, 2)]
für die letzten beiden Zeilen sind die Werte für Col4 null gewesen .
Nun mein Problem: Ich wollte einfach eine Spalte basierend Liste erstellen, so habe ich nur einen Druck (zip (* data)) jedoch, dass dann Spalte 4 in seiner Gesamtheit unterlässt ....
[('Col1', 'A', 'B', 'C', 'D', 'E', 'F'),
('Col2', 1, 4, 11, 44, 1, 1),
('Col3', 2, 5, 22, 55, 2, 2)]
ich würde so etwas wie wollen:
[('Col1', 'A', 'B', 'C', 'D', 'E', 'F'),
('Col2', 1, 4, 11, 44, 1, 1),
('Col3', 2, 5, 22, 55, 2, 2),
('Col4', 3, 6, 33, 66)]
Irgendwelche Ideen, wie man damit umgehen?
Danke!
Auswahl Ihres Ausgang ist nicht unbedingt praktikabel - wenn die kurzen Reihen nicht ganz am Ende waren, Ihre Spalten würde nicht mehr Zeile nach oben aufgrund der fehlenden Gegenstände. Statt '' zip() '' versuche '' iertools.zip_longest() '' - es blendet kurze Zeilen mit None aus (oder einen anderen Wert, der durch einen '' fillvalue = '' Parameter angegeben wird). – jasonharper