Wie speichert ein array in ein dictionary auf Basis von python

Ich bin derzeit versuchen zu ändern, eine Reihe von Programmen, die durch die Nutzung der Wörterbücher im Gegensatz zu arrays. Ich habe Spalten von raw-Informationen in eine Datei, das Lesen Sie dann in einer ASCII-csv-Datei. Ich brauche zum konvertieren dieser Datei in ein Wörterbuch, so dass es sein kann, zugeführt und in ein anderes Programm.

Habe ich eine numpy.genfromtxt zu ziehen, die Informationen, die ich brauche aus der csv-Datei wird im folgenden format:

a,b,c,d = np.genfromtxt("file",delimiter = ',', unpack = true)

dieser Schritt funktioniert völlig in Ordnung.

Ich dann versuchen, erstellen Sie ein Wörterbuch:

ouputDict = dict([a,a],[b,b],[c,c],[d,d])

Wie ich es verstehe, dies sollte den Taste "a" in dem Wörterbuch entsprechen, die array "a".

also wenn:

a = [1,2,3,4]

dann:

outputDict[a][0] = 1

Jedoch, wenn ich versuche zu erstellen das Wörterbuch, das ich die folgende Fehlermeldung:

TypeError: unhashable type: 'numpy.ndarray'

Warum kann ich nicht konstruieren Sie ein array auf diese Art und was ist die Abhilfe, wenn überhaupt? Jede Hilfe wird sehr geschätzt!

  • versuchen zu bauen ein dict, dass die Karten ein array dasselbe array wenig Sinn macht. Ich denke, man kann haben, zu überdenken, welche Eingänge das andere Programm benötigt. Es scheint, dass eine Liste von arrays kann mehr Sinn machen.
  • ich verstehe, dass Sie können nicht anzeigen ein array zu sich selbst, und ich entschuldige mich für eventuelle Verwirrung. ich habe versucht, die Tasten haben die gleichen Namen wie die Felder der Einfachheit halber
  • Haben Sie versucht: {'a':a, 'b':b,...} oder dict(a=a, b=b,...)? dict([('a', a), ('b', b)]) sollte auch funktionieren.
  • Ich Stimme mit dem, was cel sagte, versucht zu implementieren Wörterbuch (ist nicht notwendig), wo das problem gelöst werden kann mit einem array ist nicht ein guter Weg, um code.
  • Das problem ist jetzt er versucht, einen numpy-array als Schlüssel irgendwann und das wird nicht funktionieren, weil python nicht zulässt, dass mutable Objekte als key in einem dict. Das ist, wo die unhashable Ausnahme kommt
  • leider habe ich nicht wirklich die Wahl haben in die Verwendung von Wörterbüchern. mein original code hast, nutzen eine Liste von arrays. Ich bin gefordert wird, extern zu überarbeiten, diese Eingänge. auch Dank hpjaul, das hat es zu beheben. details... jedes mal
  • vielen Dank auch an Tgsmith für die Erklärung, wo die unhashable ist comnig aus

InformationsquelleAutor Jean Sylvian | 2015-11-11
Schreibe einen Kommentar