Guten Tag,
ich bin neu hier im Forum und würde euch gerne um Rat fragen.
Kurz zu mir bin 26Jahre alt, Elektrotechnikmeister für Automatisierungstechnik und seit nun einem halben Jahr auch nebenberuflicher Student der technischen Informatik (staatliche Hochschule).
Unteranderem ist dieses Semester Programmieren 1 dran, was bisher gut läuft und Spaß macht, jedoch verzweifle ich an einer kleinen Verständnissache.
Zum eigentlichen Problem:
Schreiben Sie eine Funktion reverseDict, die ein dict-Objekt "umkehrt", d.h. alle Schlüssel zu Werten und alle Werte zu den entsprechenden Schlüsseln macht.
Hier der Code dazu:
def reverseDict(d):
erg = dict()
for key in d:
erg[d[key]] = key //Bitte zu dieser Zeile eine Erklärung
return erg
Wenn ich nun ein dict angelegt habe mit dem Namen d funktioniert dies auch aber diese eine Codezeile ist mir absolut unverständlich.
Sorry für die blöde Frage jedoch sitz ich hier seit 2 Stunden und ich raff es einfach nicht.
Danke und freundliche Grüße
Verständnisproblem
Beantworte dir mal folgende beiden Fragen:
Was macht
Und was macht
Und wenn du eingedenk deiner Aufgabe mal ueber die Namen der Bezeichner und was du tun sollst sinnierst, dann kommst du hoffentlich drauf.
Was macht
Code: Alles auswählen
wert = d[key]
Code: Alles auswählen
erg[schluessel] = wert
Zur weiteren Information: Wörterbücher haben eine items-Methode, damit wird die for-Schleife verständlicher:
Benutze keine Abkürzungen.
Kompakter wird das mit einer dict-Comprehension
Code: Alles auswählen
def reverse_dict(woerterbuch):
ergebnis = dict()
for key, value in woerterbuch.items():
ergebnis[value] = key
return ergbnis
Kompakter wird das mit einer dict-Comprehension
Code: Alles auswählen
def reverse_dict(woerterbuch):
return {value: key for key, value in woerterbuch.items()}
Was genau meinst Du mit "nicht mehr eindeutig"? Bei den vorgeführten Lösungen würden für gleiche Werte alle Schlüssel bis auf den letzten wegfallen, sie würden überschrieben. Die Alternative wären Schlüssel-Listen als Werte im umgekehrten Dictionary.
Stimmt allerdings.Was viel schwerwiegender ist, sind Werte, die man nicht als Schlüssel verwenden kann.
Na wenn zwei Schlüssel auf den gleichen Wert zeigen, ist die Abbildung umgekehrt eben nicht mehr eindeutig. Das KANN ein Problem sein, muss es aber nicht - hängt vom Problem ab. Und ob eine Liste dann die Lösung ist eben auch.