Je veux que ma fonction python divise une phrase (entrée) et stocke chaque mot dans une liste
La str().split()
méthode fait cela, elle prend une chaîne, la divise en une liste:
>>> 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
Le problème que vous rencontrez est dû à une faute de frappe, vous avez écrit print(words)
au lieu deprint(word)
:
En renommant la word
variable current_word
, voici ce que vous aviez:
def split_line(text):
words = text.split()
for current_word in words:
print(words)
..quand vous auriez dû faire:
def split_line(text):
words = text.split()
for current_word in words:
print(current_word)
Si, pour une raison quelconque, vous souhaitez construire manuellement une liste dans la boucle for, vous utiliserez la append()
méthode list , peut-être parce que vous voulez mettre en minuscule tous les mots (par exemple):
my_list = [] # make empty list
for current_word in words:
my_list.append(current_word.lower())
Ou plus un peu plus net, en utilisant une liste de compréhension :
my_list = [current_word.lower() for current_word in words]