Seite 1 von 1

defaultdict(dict) problem

Verfasst: Mittwoch 3. Februar 2010, 12:24
von mit
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

Verfasst: Mittwoch 3. Februar 2010, 12:35
von Zap
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))

Verfasst: Donnerstag 4. Februar 2010, 11:47
von mit
Danke es funktioniert.