Anfänger Frage: Ich habe ein Wörterbuch, wo die Werte sind Listen von (eine Variable # von) Strings. Letztendlich möchte ich jeden Wörterbucheintrag in eine einzelne durch Tabulatoren getrennte Zeile schreiben, wobei der Schlüssel als Spalte 1 und die einzelnen Elemente aus der Werteliste als Spalten 2-n stehen. Ich habe den folgenden Code verwendet, um eine Ausgabedatei mit dem Schlüssel als Spalte 1 und der Werteliste als Spalte 2 zu generieren, aber ich bin mir nicht sicher, wie ich von dort fortfahren soll.Schreiben Schlüssel: Wert-Paare zu einer Tab-getrennte Datei mit Variablen # Werte
mydict = {'spider':['kate', 'susan'],
'fish':['kate'],
'dog':['andy'],
'cat':['andy','colby','jeff']}
f = open('outfile.txt', 'w')
writer = csv.writer(f, delimiter = '\t')
for key, value in orfdict.iteritems():
writer.writerow([orf] + [value])
Die Python-Dokumentation schlägt vor, dass Sie zip verwenden können() eine Liste Form Schlüssel zu erstellen: Wert-Paare, aber wenn ich versuche, diese auf der interaktiven Eingabeaufforderung:
>>> for key,value in mydict.iteritems():
... mypair = zip(key,value)
... print mypair
ich diesen seltsamen Ausgang offensichtlich zu verstehen, so dass ich ich bin nicht Dinge:
[('f', 'kate')]
[('c', 'andy'), ('a', 'colby'), ('t', 'jeff')]
[('s', 'kate'), ('p', 'susan')]
[('d', 'andy')]
ist der einfachste Weg, dies geht zu tun eine leere Liste für jede Iteration über das Wörterbuch erstellen, dann auf diese Liste f Anhänge Zuerst der Schlüssel und dann jeder der Werte mit einer eingerückten for-Schleife? Ich fühle mich, als müsste ich etwas verpassen.
Dies ist, wofür JSON, XML und andere strukturierte Dokumentformate entwickelt wurden. Warum benötigen Sie eine tabulatorgetrennte CSV? – jozzas
Die "seltsame Ausgabe" von zip wird dadurch erklärt, dass das Aufnehmen einer Zeichenfolge in einem Kontext, der eine Sequenz erwartet, die einzelnen Zeichen der Zeichenfolge ergibt; Das heißt, eine Zeichenfolge verhält sich wie eine Liste von Zeichen. Wenn man also 'Katze' mit ['andy', 'colby', 'jeff'] zippt, bricht die Katze in ['c', 'a', 't']. –
@jozzas - weil ich noch nichts über diese Dateitypen weiß ... aber ich habe sie zu meiner Liste "zum Lernen" hinzugefügt. Vielen Dank! – pandaSeq