it-swarm.com.de

anhängen von Daten an ein Python-Wörterbuch

Ich habe den folgenden Code verwendet, um ein Wörterbuch aus der Liste der Schlüssel zu initialisieren z=df1[2].value_counts().keys().tolist() mydict=dict.fromkeys(z,None)

weiter habe ich gebraucht 

`value=df2[2].value_counts().keys().tolist()
   counts=df2[2].value_counts().tolist()`
    for j,items in value:
            if mydict.has_key(items):
                mydict.setdefault(items,[]).append(counts[j])

es erzeugt den folgenden Fehler

mydict.setdefault (items, []). anhängen (zählt [j]) AttributeError: 'NoneType'-Objekt hat kein Attribut' Anhängen '

1
Dileesh Dil

Das Anhängen funktioniert für Arrays, jedoch nicht für Wörterbücher. 

Um ein Wörterbuch hinzuzufügen, verwenden Sie dict_name['item'] = 3

Eine weitere gute Lösung (vor allem, wenn Sie mehrere Elemente gleichzeitig einfügen möchten) wäre: dict_name.update({'item': 3})

Der NoneType-Fehler tritt auf, wenn eine Instanz einer Klasse oder eines Objekts, mit dem Sie arbeiten, einen Wert von None hat. Dies kann bedeuten, dass ein Wert nie zugewiesen wurde.

Ich glaube auch, dass Ihnen hier eine Klammer fehlt: mydict.setdefault(items,]).append(counts[j])Es sollte sein: mydict.setdefault(items,[]).append(counts[j])

6
user10076130

Du könntest benutzen

dict["key"] = value_list 

also in deinem Fall:

mydict["key"] = z

wie hier beschrieben: Python-Dokumente

1
DerAktionaut

Der Grund für Ihren Fehler ist, dass Sie versuchen, an das Ergebnis von mydict.setdefault() anzuhängen, das eigentlich None ist, da diese Methode nichts zurückgibt. Beachten Sie ansonsten auch die anderen Antworten, die Sie zu einem Wörterbuch in Python erhalten. append

0
Gautam