[Python-de] Einfuegen in eine zweidimensionale Liste

Alex Knaub aknaub at gmail.com
Mit Sep 22 23:19:57 CEST 2004


Hallo,


ich  habe hier zwei Funktionen. Erste Funktion funktioniert nicht so,
wie ich es mir
vorstelle. Die zweite dagegen schon. 
Ich möchte eigentlich eine triviale Aufgabe lösen: Eine Datei
zeilenweise einlesen,
einzelne Zeilen in Wörter aufteilen und das alles in einer
zweidimensionalen Liste
speichern. Nun wenn ich versuche das oben Beschrieben mit Hilfe der ersten 
Funktion zu erledigen, dann bekomme ich als Ergebnis eine
zweidimensionale Liste,
die in der "zweiten Dimension" gleiche Daten enthält. Also den Inhalt der letzen
eingelesenen Zeile. Ich verstehe nicht, wieso das passiert.


def parse_log_file(logfile):
    result = []
    temp   = [] 
    
    for i in range(5):
        temp.append( i )

    contents = open(logfile, "r").xreadlines()
        
    for line in contents:
        sp = line.split(" ")
        temp[0] = sp[0]
        temp[1] = sp[1]
        temp[2] = sp[2]
        result.append( temp )
    return result

# Diese Methode tut das Gewünschte 
def parse_log_file2(logfile):
    result = []
    temp   = [] 
    
    for i in range(5):
        temp.append( i )

    contents = open(logfile, "r").xreadlines()
        
    for line in contents:
        sp = line.split(" ")
                    
        host = sp[0]
        date = sp[1]
        page = sp[2]
       
        result.append( [host, date, page] )
    return result