Quero que minha função python divida uma frase (entrada) e armazene cada palavra em uma lista
O str().split()
método faz isso, pega uma string e a divide em uma lista:
>>> 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
O problema que você está tendo é devido a um erro de digitação, que você escreveu em print(words)
vez de print(word)
:
Renomeando a word
variável para current_word
, é isso que você tinha:
def split_line(text):
words = text.split()
for current_word in words:
print(words)
..quando você deveria ter feito:
def split_line(text):
words = text.split()
for current_word in words:
print(current_word)
Se, por algum motivo, você deseja construir manualmente uma lista no loop for, você usaria o append()
método list , talvez porque queira minúsculas todas as palavras (por exemplo):
my_list = [] # make empty list
for current_word in words:
my_list.append(current_word.lower())
Ou mais um pouco mais limpo, usando uma lista de compreensão :
my_list = [current_word.lower() for current_word in words]