Ich schaffe es nicht, ein dictionary = { 'key' : 'value'} so zu ändern,
dass dictionary == { 'key' : ['value', 'value2']} ist.
Erweiterungen kommen vor, also z.B:
dictionary == { 'key' : ['value', 'value2', 'value2']}
Angeblich soll es ja besser sein, nur flache Strukturen zu nutzen.
Letztendlich möchte ich mehrere Einträge für 'key' sortieren können -
wahrsch. gibt es noch einen besseren Ansatz!?
Vorgehensweise:
d = {'key': 1} # dictionary erzeugen
d['key'] = [ d['key'] , 2 ] # Liste erzeugen und 2 als neuen Wert
hinzufuegen
d['key'].append(3) # neuen Wert an Liste haengen
print(d) # Ausgabe von {'key': [1, 2, 3]}
leichter wäre es, wenn du den Wert zum Schlüssel gleich als Liste
erzeugst
Ich weiss nicht genau was Du vorhast, aber vielleicht hilft Dir sowas weiter (vorsicht ungetestet):
1 | class modlist(list): |
2 | pass |
3 | |
4 | class appendable_dict(dict): |
5 | def append(key, value): |
6 | try: |
7 | oldval = self[key] |
8 | if type(oldval) is modlist: |
9 | oldval.append(value) |
10 | else: |
11 | self[key] = modlist((oldval, value)) |
12 | self[key].sort() |
13 | except KeyError: |
14 | self[key] = value |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.