Ich habe ein Hausaufgabenproblem in Python.
Ich verwende Python Version 3.4.0 unter Linux.
Das Design-Dokument heißt es, dass ich eine CSV-Datei erstellt unter Verwendung von Funktionen, angegeben als names.dat zu lesen, das ist im Format:
Was ist in Python der einfachste Weg, eine Liste bestehend aus Schlüsselwortpaaren zu einem Wörterbuch hinzuzufügen?
name:name2, name:name3, name2:name4, name3:name5\n (etc)
Ich bin dann diese Keyword-Paare zu einem Wörterbuch hinzufügen , das ist der Teil, auf dem ich feststecke.
Der Code, den ich bis jetzt haben, ist dies:
dictionary = dict()
database = open('names.dat', 'r')
data = database.read()
data = data.rstrip('\n')
data = data.split(',')
for item in range(len(data)):
dictionary.update(data[item-1])
Mein Denken, dass zu sein, wenn ich ein Listenelement im Format haben „name: name2“ und ich das Wörterbuch-Update-Funktion mit diesem Element als ein Aufruf Argument wird es korrekt zu einem Schlüsselwortpaar im Wörterbuch zugeordnet.
Dies ist jedoch nicht der Fall, wie ich diese Fehlermeldung erhalten, wenn ich dieses Skript ausführen:
File "MyName.py", line 7, in <module>
dictionary.update(data[item-1])
ValueError: dictionary update sequence element #0 has length 1; 2 is required
This und This ähnlich erscheinen, aber ich fühle, dass dies genug von einer anderen Frage eines separaten zu rechtfertigen Antwort.
Was mache ich hier falsch, und wie kann ich es beheben?
Gibt es einen einfacheren Weg, dies zu tun?
Dieses Idiom ist so verbreitet, in Python, dass es einige Syntax Zucker ist für sie: siehe 'dict.setdefault' und' collections.defaultdict'. –
Ordentlich, ich habe von R nach Python für meine AI-Klasse gewechselt und diese Methoden könnten mir einige Kopfschmerzen auf der Straße ersparen – JGreenwell