2017-09-29 4 views
0

Ich bin neu in Python, ich versuche, eine Liste von Listen aus einer Textdatei zu erstellen. Die Aufgabe scheint einfach zu sein, aber ich weiß nicht, warum es nicht mit meinem Code funktioniert.Liste der Listen aus Datei Python erstellen

Ich habe die folgenden Zeilen in meiner Textdatei:

word1,word2,word3,word4 
word2,word3,word1 
word4,word5,word6 

Ich mag folgende Ausgabe erhalten:

[['word1','word2','word3','word4'],['word2','word3','word1'],['word4','word5','word6']] 

Im Folgenden ist der Code, den ich versuchte:

mylist =[] 
list =[] 
with open("file.txt") as f: 
    for line in f: 
     mylist = line.strip().split(',') 
     list.append(mylist) 
+0

Ihr Code funktioniert gut für mich (obwohl 'mylist = [ ] 'ist nutzlos, und Sie sollten' list' nicht als Variablennamen verwenden. Erhalten Sie nicht die gewünschte Ausgabe, wenn Sie "Liste drucken"? –

+0

@MedAli Es ist sicherlich ein guter Rat, 'liste' nicht als Variablennamen zu verwenden, aber es ist ** nicht ** ein reserviertes Wort, sonst wäre es ein Syntaxfehler, es als Variablennamen zu verwenden (mit' for', 'while' oder' from' als Variablennamen). 'list' ist der Name einer eingebauten Klasse, und Sie können es neu definieren, wenn Sie wirklich wollen, aber das ist im Allgemeinen _nicht_ eine gute Idee. –

Antwort

2

Sie können wie folgt iterieren:

f = [i.strip('\n').split(',') for i in open('file.txt')] 
+0

Sie sollten erwägen, Ihre Antwort zu erweitern, um ein 'mit open ('file.txt') als f 'hinzuzufügen ... es ist eine gute Übung :-) –

+0

Dies gibt mir immer noch nicht die Ausgabe, die ich suche :( – Mow1993

+0

@ Mow1993 posten Sie bitte die Ausgabe, die Sie gerade erhalten. – Ajax1234

0

Ihr Code funktioniert gut, wenn Ihr Code Probleme in Ihrem System zu schaffen, dann, wenn Sie möchten, das mit dieser in einer Linie tun können:

with open("file.txt") as f: 
    print([i.strip().split(',') for i in f])