defaultdict mit OrderedDict 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

Hi,
Wie koennte man das folgende Problem loesen?

Code: Alles auswählen

>>> from collections import defaultdict
>>> from collections import OrderedDict
>>> a = defaultdict(lambda: OrderedDict)
>>> a[1]["X.1"] = 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'type' object does not support item assignment
>>> 
Vielen Dank im Vorraus
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Code: Alles auswählen

>>> from collections import *
>>> OrderedDict
<class 'collections.OrderedDict'>
>>> OrderedDict[1] = 1
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: 'type' object does not support item assignment
>>> (lambda: OrderedDict)()
<class 'collections.OrderedDict'>
>>> d = defaultdict(OrderedDict)
>>> d[0][0] = 1
>>> d
defaultdict(<class 'collections.OrderedDict'>, {0: OrderedDict([(0, 1)])})
Dir ist klar was passiert?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Indem man es richtig benutzt:

Code: Alles auswählen

In [1]: from collections import defaultdict, OrderedDict

In [2]: a = defaultdict(OrderedDict)

In [3]: a[1]["X.1"] = 0

In [4]: a = defaultdict(lambda: OrderedDict())

In [5]: a[1]["X.1"] = 0
mit
User
Beiträge: 285
Registriert: Dienstag 16. September 2008, 10:00

Danke
Antworten