Für eine aktuelle Python-Hausaufgabe wurden wir angewiesen, eine Funktion zu erstellen, die Wörter in einer Liste zurückgibt, die mit 'd' beginnt. Hier ist der relevante Code:So konvertieren Sie eine verschachtelte if-Anweisung in eine Lambda-Funktion (Python)
def filter_words(word_list, letter):
'''
INPUT: list of words, string
OUTPUT: list of words
Return the words from word_list which start with the given letter.
Example:
>>> filter_words(["salumeria", "dandelion", "yamo", "doc loi", "rosamunde",
"beretta", "ike's", "delfina"], "d")
['dandelion', 'doc loi', 'delfina']
'''
letter_list = []
for word in word_list:
if word[0] == letter:
letter_list.append(word)
return letter_list
Die oben geschachtelt if-Anweisung, dass ich Werke geschrieben, wenn ich den Code ausführen, die ich bin glücklich über (: D); Als ich jedoch versuchte, pythischer und schlauer mit der Sprache zu werden, fand ich einen sehr hilfreichen Artikel über why Lambda functions are useful und wie man diese gleiche Herausforderung mit einem Lambda lösen könnte, aber ich konnte nicht herausfinden, wie man es in diesem Fall zum Laufen bringt.
Ich frage nach Anleitung, wie ich meine oben geschachtelte if-Anweisung möglicherweise als eine Lambda-Funktion schreiben kann.
'[(lambda x: x) (Wort) für Wort in (lambda x: x) (letter_list) if (Lambda x, y, z: x [y] == z) (Wort, x, Buchstabe)] ' – donkopotamus