2016-05-19 9 views
-2

Wie würde ich um eine Liste erstellt mit Listenelementen abgelegt, die in einer Textdatei, dh:Erstellen von Python Doppel Liste von Textdatei

ich mit

car;horse;bike 
cat;dog;platypus 
salad;cookie;pasta 

Und ich eine Textdatei d‘, eine Liste erstellen

List = [[car;horse;bike],[cat;dog;platypus],[salad;cookie;pasta]] 

Dank

+0

Verwenden 'csv' Modul. – Kasramvd

+1

'[[Auto; Pferd; Fahrrad], [Katze; Hund; Schnabeltier], [Salat; Keks; Pasta]] ist keine gültige Python-Syntax, meinst du:' [['Auto', 'Pferd', ' bike '], [' cat ',' dog ',' platypus '], [' salat ',' cookie ',' pasta ']] ' –

+1

Das obige kann mit buchstäblich 3 Zeilen Code erreicht werden:' import csv; mit open ("data.csv", "r") als f: data = list (csv.reader (f, delimiter = ";")) ' –

Antwort

1

In einer Zeile:

lst = [line.replace('\n','').split(';') for line in open('file.txt','r').readlines()] 

Wenn Sie nicht "ersetzen ('\ n', '')" setzen, haben Sie vielleicht Probleme im letzten Wert. Und manchmal nedd du "ersetzen" ('\ r', '') ". Dies ist zum Löschen der "Rückkehr" am Ende der Zeile.

Oder einfacher, wie vorgeschlagen:

LST = [.. Line.strip(), Split (';') für die Leitung in open ('datei.txt', 'r') Leseleitungen()]

wich produziert:

[['car', 'horse', 'bike'], ['cat', 'dog', 'platypus'], ['salad', 'cookie', 'past 
a']] 
+2

warum würden Sie nicht einfach 'line.strip()' machen? Es entfernt den gesamten weißen Raum um die Linie, einschließlich '\ n',' \ r', '\ t',' '(Leerzeichen) und ein paar andere. –

+0

Ja, es ist einfacher, ich werde bearbeiten. Vielen Dank! – awulll

+0

Wie könnte ich auf ein Element in der Liste verweisen, z. B. Hund. Ich habe es versucht [1] [1], das funktioniert nicht. – Johny

Verwandte Themen