Partage
  • Partager sur Facebook
  • Partager sur Twitter

Chercher dans une liste

Sujet résolu
    24 septembre 2014 à 14:35:24

    Bonjour bonjour à tous,

    Alors voilà, je suis confronté à un problème que je ne comprends pas bien ... Je vous montre le code :

    liste = ['jean-pierre',
    	 'jean-pascal',
    	 'philippe',
    	 'edouard',
    	 ]
    
    for i in liste:
    	if i.find('jean') != -1 or i.find('') != -1:
    		print (i)

    Alors voilà, imaginons que j'ai une liste de prénom. Je souhaite extraire les prénoms qui contiennent la variable 'jean'. Je liste ma liste avec une boucle for in et à chaque tour de boucle je cherche le terme 'jean'. Comme j'ai potentiellement besoin de plus qu'un filtre, j'en rajoute un mais ici il est vide (le ''). La méthode find retourne la position à laquelle est retrouvé la chaine et si elle ne trouve rien, la méthode renvoie -1

    Donc si je lis ma boucle en français, on peut lire :

    Pour chaque terme i dans la liste liste:
    
        SI 'jean' est retrouvé dans i OU si '' est retrouvé dans i:
    
            On montre i


    Le hic c'est que tout les possibilités sortent ...

    Je cherche donc à comprendre le pourquoi du comment.

    Merci d'avance à ceux qui ont la réponse à cette énigme :)

    -
    Edité par philippe NOEL 24 septembre 2014 à 14:35:44

    • Partager sur Facebook
    • Partager sur Twitter
      24 septembre 2014 à 14:43:48

      Parce qu'il y a un '' au début de ta chaine et que du coup tous les tests sont vrais. Par contre find n'est pas vraiment adapté, utilise plutôt le mot clé in.

      -
      Edité par Derzal 24 septembre 2014 à 14:44:10

      • Partager sur Facebook
      • Partager sur Twitter
        24 septembre 2014 à 14:44:25

        Salut,

        rajoute cette ligne après ton print(i): print(i.find("jean"), i.find("")), ça te donnera ta réponse :)

        PS: Eh bien voilà, Derzal a donné la réponse :lol:

        PS2: in est une excellente idée Derzal ;)

        -
        Edité par Olygrim 24 septembre 2014 à 14:47:37

        • Partager sur Facebook
        • Partager sur Twitter
        Précepte: Le mieux est l'ennemi du bien
          24 septembre 2014 à 15:00:54

          Oh mon dieu .... c'est tellement stupide, je sais pas pourquoi j'y ai pas pensé plus tôt.

          Le pire c'est que ça fait bien 15-20 min que je cherche et j'ai regardé de différente façon .... c'est juste que dans ma tête ça paraissait pas logique.

          Merci à vous en tout cas, vous m'avez bien aidé ^^

          • Partager sur Facebook
          • Partager sur Twitter

          Chercher dans une liste

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown