Ich möchte, dass meine Python-Funktion einen Satz (Eingabe) teilt und jedes Wort in einer Liste speichert
Die str().split()
Methode führt dies aus, nimmt eine Zeichenfolge und teilt sie in eine Liste auf:
>>> the_string = "this is a sentence"
>>> words = the_string.split(" ")
>>> print(words)
['this', 'is', 'a', 'sentence']
>>> type(words)
<type 'list'> # or <class 'list'> in Python 3.0
Das Problem, das Sie haben, ist ein Tippfehler, den Sie geschrieben haben, print(words)
anstatt print(word)
:
Wenn Sie die word
Variable in umbenennen current_word
, haben Sie Folgendes:
def split_line(text):
words = text.split()
for current_word in words:
print(words)
..wenn Sie hätten tun sollen:
def split_line(text):
words = text.split()
for current_word in words:
print(current_word)
Wenn Sie aus irgendeinem Grund eine Liste in der for-Schleife manuell erstellen möchten, verwenden Sie die append()
Listenmethode, möglicherweise weil Sie alle Wörter (zum Beispiel) in Kleinbuchstaben schreiben möchten:
my_list = [] # make empty list
for current_word in words:
my_list.append(current_word.lower())
Oder eher ein bisschen ordentlicher, mit einem Listenverständnis :
my_list = [current_word.lower() for current_word in words]