2 votes

Python : comment trouver une correspondance exacte dans une liste et pas seulement un mot contenu dans la liste ?

J'essaie de trouver une correspondance exacte pour un mot dans une liste de mots, soit dans une liste [], soit dans une liste provenant d'un document texte séparé par un mot par ligne. Mais l'utilisation de "in" retourne vrai si le mot est contenu dans la liste de mots. Je cherche une correspondance exacte. Par exemple en python 2.7.12 :

mylist = ['cathrine', 'joey', 'bobby', 'fredrick']

for names in mylist:
    if 'cat' in names:
        print 'Yes it is in list'

Cela renverra un résultat positif, mais je veux que ce résultat ne soit positif que s'il s'agit d'une correspondance exacte. 'cat' ne doit pas renvoyer true si 'cathrine' est dans mylist.

et l'utilisation de "if 'cat' == names :" ne semble pas fonctionner.

Comment faire pour ne renvoyer true que si la chaîne recherchée correspond exactement à une liste de mots et n'est pas contenue dans un mot d'une liste de mots ?

1voto

Rakesh Points 2644

Vous pouvez utiliser in directement sur la liste.

Ex :

mylist = ['cathrine', 'joey', 'bobby', 'fredrick']

if 'cat' in mylist:
    print 'Yes it is in list'
#Empty

if 'joey' in mylist:
    print 'Yes it is in list'
#Yes it is in list

0voto

Roushan Points 2474

Vous pouvez utiliser in avec if else opérateur conditionnel

In [43]: mylist = ['cathrine', 'joey', 'bobby', 'fredrick']

In [44]: 'yes in list ' if 'cat' in mylist else 'not in list'
Out[44]: 'not in list'

0voto

@Rakesh a donné une réponse à la tâche d'archivage que vous lui avez confiée, mais il s'agit simplement d'apporter une correction à votre déclaration.

 trying to use "if 'cat' == names:' does't seem to work

en fait 'cat' == names ceci renvoie false Le problème, c'est qu'il vous manque l'autre partie pour l'attraper.

mylist = ['cathrine', 'joey', 'bobby', 'fredrick']

for names in mylist:
    if 'cat' == names:
        print ('Yes it is in list')
    else:
        print('not in list')

0voto

Sanjit Majee Points 99

Vous pouvez utiliser '==' au lieu de 'in'

mylist = ['cathrine', 'joey', 'bobby', 'fredrick']

for names in mylist:
    if names =='cat' :
        print('Matched')
    else:
        print('Not Matched')

Je pense que cela fonctionnera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X