2013-02-28 4 views
1

J'ai une liste de suffixes et je veux vérifier si ma parole se termine par un de ceux-ci et si elle ne je veux l'imprimer, je fais ce qui suit:correspondre une chaîne à un mot dans la liste

if(string.endswith(any(word in my_list))): 
     print string 
     print" " 
     print word 

my_list est la liste des suffixes. Quand je l'exécute, il me donne l'erreur en disant que le nom «mot» n'est pas défini

Répondre

7

any renvoie une valeur booléenne. str.endswith attend une chaîne ou un tuple de chaînes.

Vous voulez probablement quelque chose comme:

if s.endswith(tuple(my_list)): 
    print string 

ou si vous voulez vraiment savoir qui elle correspondait:

suffix = next((word for word in my_list if s.endswith(word)),False) 
if suffix: 
    print word, suffix 
+0

@DSM - Merci. – mgilson

Questions connexes