Ich habe an dieser Aufgabe für eine Weile gearbeitet, die Aufgabe ist es, eine Funktion zu schreiben, die einen Text in Englisch auf Schwedisch übersetzt. Ich habe eine Dicitonary mit Schlüssel & Wert erstellt, wobei Schlüssel das englische Wort und Wert das schwedische Wort ist.Python-Funktion gibt leere Liste zurück
WIE ICH DENKEN WURDE: Ich dachte daran, dass es 2 für Schleifen geben sollte. Zuerst sollte man durch Schlüssel und Werte im Wörterbuch iterieren, und der zweite sollte durch den String iterieren, danach sollte es eine Bedingung geben, wo geprüft wird, ob der Schlüssel im Wörterbuch gleich dem Wort in der Zeichenkette ist. Falls ja, hängen Sie den Wert des Schlüssels an die Liste an.
DAS PROBLEM: Die Funktion gibt eine leere Liste zurück.
hier mein CODE:
def translate(a):
trs = {"merry":"god", "christmas":"jul", "and":"och", "happy":"gott", "new":"nytt", "year":"år"}
translated = []
for k, v in trs.iteritems():
for i in a.split(" "):
if trs[k] == i:
translated.append(trs[v])
return translated
print translate("merry christmas and happy new year")
In Ihrer Schleife haben Sie bereits 'k' als Schlüssel aus' trs' und 'v' als Wert. Warum steckst du sie wieder in 'trs' als Schlüssel, wie' trs [k] 'und' trs [v] '? –
"Wenn Schlüssel im Wörterbuch gleich dem Wort in der Zeichenfolge ist" Nun, nein, Sie überprüfen es gegen 'Trs [k]' was ist der ** Wert **, müssten Sie überprüfen, wenn i == k um es gegen den Schlüssel zu überprüfen. –
was meinst du, indem du sie zurück in trs legst? Ich will, dass es den Wert in die Liste 'übersetzt' anfügt, wenn der Schlüssel in trs dictionary ist gleich mit dem Wort in string (i) –