Chcę, aby moja funkcja python podzieliła zdanie (wejście) i zapisała każde słowo na liście
str().split()
Sposób to robi, że ma ciąg, dzieli go na listę:
>>> 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
Problem, który masz, to literówka, którą napisałeś print(words)
zamiast print(word)
:
Zmieniając nazwę word
zmiennej na current_word
, właśnie to:
def split_line(text):
words = text.split()
for current_word in words:
print(words)
... kiedy powinieneś zrobić:
def split_line(text):
words = text.split()
for current_word in words:
print(current_word)
Jeśli z jakiegoś powodu chcesz ręcznie utworzyć listę w pętli for, skorzystaj z append()
metody list , być może dlatego, że chcesz małe litery wszystkich słów (na przykład):
my_list = [] # make empty list
for current_word in words:
my_list.append(current_word.lower())
Lub bardziej schludnie, używając zrozumienia listy :
my_list = [current_word.lower() for current_word in words]