Seite 1 von 1

Wie macht man es am besten? Dictionaries füllen..

Verfasst: Mittwoch 3. Februar 2010, 20:47
von Holgi22
Guten abend

mal angenommen dass ich 100 Tests habe. Jeder Test hat natürlich einen Namen und ein Resultat.
Am Anfang des Tests würde ich z.B. ein Dictionary deklarieren:

Code: Alles auswählen

Dict = {}
Und für jeden Test würde ich ein eignes Dictionary anlegen:

Code: Alles auswählen

Test1 = {Test1: ["Gut"]}
Test2 = {Test2: ["Naja"]}
Test3 = {Test3: ["Eigentlichgut"]}
Test4 = {Test4: ["OhhSehrschlecht"]}
...
Und am Ende der 100 Tests einfach die Dictionaries der einzelnen Tests in einem zusammenfassen:

Code: Alles auswählen

Dict.update(Test1)
Dict.update(Test2)
Dict.update(Test3)
Dict.update(Test4)
..

Würdet ihr es auch so machen oder gibt es eine elegantere Weise. Ihr könt euch vorstellen dass für 100 Tests ziemlich viel an updates bedeutet :P

Verfasst: Mittwoch 3. Februar 2010, 20:56
von SpiritCrusher
Ich weiß nicht, ob ich 100 % vertanden hab, was du da machen möchtest, aber ich geh davon aus das du NICHT ein dictionary mit 1000 dictionaries drin haben möchtest... Ich denke das folgende sollte dir helfen:

>>> foo = {}
>>> foo['test1'} = 'Gut'
>>> foo['test2'] = 'Naja'
>>> foo
{'test1': 'Gut', 'test2': 'Naja'}

Verfasst: Mittwoch 3. Februar 2010, 21:11
von Holgi22
abend,

nee dachte mir schon dass es eine bessere alternative gibt.
das sieht gut aus. wusst enicht dass es so auch geht :D

Verfasst: Donnerstag 4. Februar 2010, 08:42
von BlackJack
@Holgi22: Wenn Du *das* nicht wusstest, solltest Du erst einmal das Tutorial in der Python-Dokumentation durcharbeiten, bevor Du irgend etwas anderes machst.

Verfasst: Donnerstag 4. Februar 2010, 09:53
von Defnull
SpiritCrusher hat geschrieben:Ich weiß nicht, ob ich 100 % vertanden hab, was du da machen möchtest, aber ich geh davon aus das du NICHT ein dictionary mit 1000 dictionaries drin haben möchtest...
Du scheinst die update()-Methode von dict auch nicht ganz verstanden zu haben. Die Lösung von OP funktioniert, auch wenn sie umständlich ist.