1. #1
    Invité régulier
    Inscrit en
    août 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 39
    Points : 7
    Points
    7

    Par défaut recherche dans des strings

    Bonjour,

    Je cherche à faire une recherche dans une list de string. Mais je voudrai trouver une fonction qui ne fait une simple recherche (genre string.find("bibi") ) mais un truc plus évolué. Par exemple :
    1: algorithme
    2: algorithmé
    3: _algo_rithme

    Comment faire pour qu'il trouve les trois ? Dans google par exemple, si on a un caractère de pas bon il propose quand même la bonne réponse.

    Merci

  2. #2
    Expert Confirmé Sénior
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    2 639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 2 639
    Points : 4 909
    Points
    4 909
    Billets dans le blog
    6

    Par défaut

    Bonjour,

    On peut utiliser le module difflib:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from difflib import SequenceMatcher
     
    def simil(mot1, mot2, ratio):
        return SequenceMatcher(None, mot1, mot2).ratio() >= ratio
     
    liste = ["toto", "algorithme", "albert", "algorithmé", "dupont", "_algo_rithme"]
     
    for mot in liste:
        if simil("algorithme", mot, 0.7):
            print mot
    Résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    algorithme
    algorithmé
    _algo_rithme
    Il faut, bien sûr, adapter le ratio à ce qu'on veut trouver, et on peut aussi neutraliser la casse (majuscule/minuscule) avant de faire la comparaison.

    J'utilise cela souvent pour trouver des noms qui auraient été écrits avec des erreurs de saisie dans une base de données.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Invité régulier
    Inscrit en
    août 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 39
    Points : 7
    Points
    7

    Par défaut

    Mais c'est juste génial ce truc !!

    Merci !!!!!!!!!

  4. #4
    Membre éprouvé
    Inscrit en
    mai 2006
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : mai 2006
    Messages : 290
    Points : 415
    Points
    415

    Par défaut

    Citation Envoyé par kiby56 Voir le message
    Mais c'est juste génial ce truc !!

    Merci !!!!!!!!!
    +1, merci pour l'info tyrtamos.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche dans un String
    Par delph1983 dans le forum Langage
    Réponses: 23
    Dernier message: 09/03/2006, 22h59
  2. Réponses: 6
    Dernier message: 26/12/2005, 00h48
  3. [XP] recherche dans des fichiers d'extension jsp
    Par drinkmilk dans le forum Windows XP
    Réponses: 5
    Dernier message: 20/10/2005, 08h55
  4. [FPDF] Rechercher dans des pdf
    Par snike dans le forum FPDF
    Réponses: 1
    Dernier message: 09/09/2005, 09h58
  5. recherche dans un string
    Par ericmart dans le forum ASP
    Réponses: 2
    Dernier message: 28/02/2005, 19h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo