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

Keys einer Dict umbenennen

Beitragvon koukoun » Samstag 5. Mai 2007, 16:17

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 5. Mai 2007, 16:29

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 Modvoice

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]