Forum: PC-Programmierung Python, dictionary Wert in Liste umwandeln und erweitern?


von hans (Gast)


Lesenswert?

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!?

von Snake (Gast)


Lesenswert?

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

von Klaus T. (gauchi)


Lesenswert?

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
Noch kein Account? Hier anmelden.