Python-Aufgabe ist unverständlich - kann jemand helfen?
Liebe GuteFrage Community!
Ich sitze seit einer Stunde da und starre Locher in die Luft, da ich intensiv eine Lösung suche. Aber ich finde keine.
Ich habe ein Dictionary gegeben und soll die angefügte Aufgabe lösen. Hat jemand Tipps oder gar Lösungsvorschläge?
MfG
2 Antworten
So..?
def spiegeln(d):
res = {}
for key in d:
res[d[key]] = key
return res
d = {1:'a',2:'b',3:'c',4:'d'}
print(spiegeln(d))
#Oder als lambda Funktion mit dict comprehension
spiegeln = lambda d: {d[key]:key for key in d}
#Lambda Funktionen bieten sich ja bei simplen Sachen gut an ;)
Bei der Norameln Funktion hast du doch praktisch nur eine Schleife..? Die Lambda Funktion dient nur als Verkürzung.
Asoooooo tut mir leid ich Sitz schon länger dran mein Gehirn ist bereits leicht Matsch XD. Danke das hat mir sehr geholfen!
Ps.: Wenn du dir mal die syntax von Lambda Funktionen und dictionary comprehensions anschaust, wirst du merken, dass das praktisch identisch zur ersten Funktion läuft ;)
Genauso hat es whgoffline doch vorgegeben.
def spiegeln(d):
res = {}
for key in d:
res[d[key]] = key
return res
dict = {
"Flugzeug": "airplane",
"Auto": "car",
"Haus": "house"
}
print("Dictionary vor dem Spiegeln:")
print(dict)
dict = spiegeln(dict)
print("Dictionary nach dem Spiegeln:")
print(dict)
Die Funktion nimmt das übergebene Dictionary, erstellt ein leeres temporäres Dictionary, speichert den Key als Value und den Value als Key in das temporäre Dictionary und gibt dieses dann zurück.
Die Schlüssel und Werte werden also einfach vertauscht zurückgegeben.
Genauso war die Aufgabenstellung vorgegeben.
Ja wie gesagt war vorerst nur leicht verwirrt. Aber danke für die Erklärung!
Du kannst über die Paare (a, b) in den dict.items() iterieren und damit ein Dicitionary mit den vertauschten Zuordnungen b: a aufbauen...
def spiegeln(dictionary):
return({b: a for a, b in dictionary.items()})
test_dict = {'hello': 'Hallo', 'world': 'Welt', 'example': 'Beispiel'}
print("Original:", test_dict)
print("Gespiegelt:", spiegeln(test_dict))
Bzw. kannst du auch kürzer schreiben...
spiegeln = lambda d: {a: b for a, b in d.items()}
Hm guter Lösungsansatz finde ich aber vieles haben wir noch nicht gelernt von dem. Bis jetzt kann ich nur Schleifen, Basics, If Else Statements, Listen, definieren, randoms und dictionaris. Würde das auch etwas leichter mit diesen genannten skills gehen?
MfG