Ich habe ein Programm geschrieben, in dem der User Daten erzeugt. Diese sind immer aus den selben Kategorien ('Datei', 'xWert', ... usw), und ich dachte mir, es wäre schön sie in einer list of dictionaries abzulegen
ld = [{'d':1,'x'=34},{'d':56,'x'=76},...]
'Das Internet' suggerierte mir, ich könne dann z.b. ld[300][x] aufrufen, um an den x Wert aus dem 300sten Eintrag der list of dictionaries zu kommen.
Leider ist das Verhalten sehr erratisch, und ich komme nicht dahinter, was ich falsch mache.
Hier ein Beispiel:(Man beachte, dass ich am Ende nur einmal das dictionary s appende, und trotzdem alle dictionaries ersetzt werden...)
System: XP32, Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)]
Code: Alles auswählen
>>> q={'a':1,'b':2}
>>> s={'a':8,'b':9}
>>> ld = []
>>> ld.append(q)
>>> ld.append(s)
>>> ld
[{'a': 1, 'b': 2}, {'a': 8, 'b': 9}]
>>> s={'a':5,'b':6}
>>> ld
[{'a': 1, 'b': 2}, {'a': 8, 'b': 9}]
>>> ld.append(s)
>>> ld
[{'a': 1, 'b': 2}, {'a': 8, 'b': 9}, {'a': 5, 'b': 6}]
>>> ld[0]['a']
1
>>> ld=[]
>>> ld.append(s)
>>> ld.append(s)
>>> ld
[{'a': 5, 'b': 6}, {'a': 5, 'b': 6}]
>>> s['a']=100
>>> ld.append(s)
>>> ld
[{'a': 100, 'b': 6}, {'a': 100, 'b': 6}, {'a': 100, 'b': 6}]
>>>