defaultdict(dict) problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mit
User
Beiträge: 285
Registriert: Dienstag 16. September 2008, 10:00

Hallo,
ich wollte ganz gerne defaultdict(dict) wie folgt verwenden:

Code: Alles auswählen

from collections import defaultdict

outputResultDict = defaultdict(dict)

subject = "Test1"
query = "Test2"
db = "Test3"

outputResultDict[subject][query][db] = ["1", "2"]
und bekomme folgende Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "test.py", line 9, in <module>
    outputResultDict[subject][query][db] = ["1", "2"]
KeyError: 'Test2'
Was mache ich falsch?

Viele Grüße
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Da dict und list als factory function verwendet werden und du ja in Summe 3 verschachtelte dicts haben willst, muss meiner Meinung nach eine factory function für den defaultdict constructor vorhanden sein.

Ich denke, dass es so funktionieren sollte:

Code: Alles auswählen

outputResultDict = defaultdict(lambda: defaultdict(dict))
mit
User
Beiträge: 285
Registriert: Dienstag 16. September 2008, 10:00

Danke es funktioniert.
Antworten