2017-07-12 1 views
1

Je travaille sur une partie d'un programme qui transforme une instruction en question. Quand j'essaie d'enlever x il n'en renvoie aucun je veux qu'il imprime la phrase avec cet article enlevé, qu'est-ce que je fais mal?python3 .remove renvoie Aucun lorsque j'essaie de supprimer une variable d'une liste

def Ask(Question): 
     Auxiliary = ("will","might","would","do","were","are","did") 
     for x in Auxiliary: 
      if x in Question: 
       Question_l = Question.lower() 
       Question_tk_l = word_tokenize(Question) 
       Aux_Rem = Question_tk_l.remove(x) 
       print (Aux_Rem) 

exemple pour le comportement voulu:

"what we are doing in the woods" 

devrait devenir

"what we doing in the woods" 

Je veux enlever tout auxiliaire de question.

+1

Par ailleurs, ne pas modifier les listes en itérer sur eux, ou vous obtiendrez une exception –

+0

double possible de [Python, supprimez toutes les occurrences de la chaîne dans la liste] (https://stackoverflow.com/ questions/10563288/python-remove-all-occurrences-de-string-in-list) –

+0

Voulez-vous supprimer _all_ instances, ou juste une à la fois? – 101

Répondre

1

C'est le comportement correct. remove supprime cet élément et ne renvoie pas de valeur (c'est-à-dire renvoie None). Vous pouvez utiliser pop si vous souhaitez accéder à l'élément supprimé.

+0

non je veux accéder à la chaîne maintenant sans cet élément en elle. C'est pourquoi je l'ai enlevé ne devrait-il pas imprimer la question sans les Aux? –

0

somelist.remove(x) supprime le premier élément trouvé égal à x de somelist. Il ne renvoie pas la liste modifiée. Pour imprimer la liste modifiée, imprimez simplement la liste.

print(Question_tk_l) 

Si vous voulez transformer en une chaîne agréable, vous devriez vous joindre avec l'espace.

print(' '.join(Question_tk_l)) 
+0

Merci! Je vais essayer et voir si ça marche! –

+0

ici j'ai maintenant this def Poser (Question): Auxiliaire = ("sera", "pourrait", "serait", "faire", "étaient", "sont", "a fait") pour x dans Auxiliaire: si x à la question: Question_l = Question.lower() Question_tk_l = word_tokenize (question) Question_tk_l.remove (x) print (» » .join (Question_tk_l)) autre: print ("machin") –

+0

et j'ai eu cette erreur: Traceback (dernier appel dernier): Fichier "", ligne 1, dans Demander ("ce que vous faisiez") Fichier "/ media/pi/TRAVELDRIVE/Code Jarvis Jarvis/Jarvis_Resourses /Jarvis_Functions.py ", lin e 101, dans Demander Question_tk_l.remove (x) ValueError: list.remove (x): x absent de la liste –