Dictionary "updaten"

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
Pat1
User
Beiträge: 2
Registriert: Freitag 12. November 2010, 17:45

Folgendes Problem:
Ich habe ein dictionary á la:

Code: Alles auswählen

{1: 'Pat', 2: 'Bob', 3: 'computer1', 4: 'computer2'}
jetzt entferne ich einen der vorderen Einträge, z.B. Bob.

Code: Alles auswählen

del playernames [2]
Dann bekomme ich ein dict á la:

Code: Alles auswählen

{1: 'Pat', 3: 'computer1', 4: 'computer2'}
Frage:
Gibts eine elegante Möglichkeit, das dict so zu "updaten", dass die key values (unter Beibehaltung der Reihenfolge der Values und unabhängig von Größe des dict) auf 1, 2, 3, ... gesetzt werden?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Pat1 hat geschrieben: Frage:
Gibts eine elegante Möglichkeit, das dict so zu "updaten", dass die key values (unter Beibehaltung der Reihenfolge der Values und unabhängig von Größe des dict) auf 1, 2, 3, ... gesetzt werden?
Nö! Wäre ja auch unerwünscht, da die Keys ja ggf. anderweitig "verlinkt" sind. Du suchst Listen nehme ich mal an?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Pat1 hat geschrieben:Gibts eine elegante Möglichkeit, das dict so zu "updaten", dass die key values (unter Beibehaltung der Reihenfolge der Values und unabhängig von Größe des dict) auf 1, 2, 3, ... gesetzt werden?
Nimm eine Liste.

`dict`s sind übrigens ungeordnet, da wird das Beibehalten einer definierten Reihenfolge schwierig. Es gibts zwar collections.OrderedDict, aber du willst trotzdem eigentlich eine Liste nehmen.
Pat1
User
Beiträge: 2
Registriert: Freitag 12. November 2010, 17:45

okay, danke für die antworten.
Antworten