Keys einer Dict umbenennen

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
koukoun
User
Beiträge: 27
Registriert: Freitag 27. April 2007, 15:55

Hallo,

ich versuche seit einer Stunde, die Keys der MTestNames durch die von ADNames zu erstezen. Das klappt irgendwie nicht.

Kann jemand mir weiterhelfen?

Code: Alles auswählen

MTestNames = {
'V_ReverseDrivingSwitch': [0, 1],
'V_GearSelectorRPosition': [0, 0],
'V_GearSelectorOld': [1, 1],
'V_Kl15Bus': [0, 1],
'V_Kl15HW': [0, 0]
}
ADNames = [ "a", "b", "c", "d", "e"]

for i in range(len(MTestNames)):
    MTestNames.keys()[i]= ADNames[i]
Die Keys in MTestNames werden nicht umbenannt... :-(

Edit (Leonidas): Code in Python-Tags gesetzt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Zuersteinmal: Ich habe deinen COde in Tags gesetzt. Mach das in Zukunft bitte selbst.

Das geht so nicht, weil die Keys in MTestNames keine Reihenfolge haben. Du müsstest ADNames eher so definieren:

Code: Alles auswählen

ADNames = {
    'V_ReverseDrivingSwitch' : 'a',
    'V_GearSelectorRPosition' : 'b',
    'V_GearSelectorOld' : 'c',
    'V_Kl15Bus' : 'd',
    'V_Kl15HW' : 'e'
}

MTestNames = {
    'V_ReverseDrivingSwitch': [0, 1],
    'V_GearSelectorRPosition': [0, 0],
    'V_GearSelectorOld': [1, 1],
    'V_Kl15Bus': [0, 1],
    'V_Kl15HW': [0, 0]
}

for old_name, new_name in ADNames.iteritems():
    MTestNames[new_name] = MTestNames[old_name]
    del MTestNames[old_name]
(ungetestet, als dem Kopf zusammengeschrieben)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten