Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  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 : 6
    Points
    6

    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é
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    2 246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 2 246
    Points : 3 703
    Points
    3 703

    Par défaut

    Bonjour,

    On peut utiliser le module difflib:

    Code :
    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 :
    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.
    Ne rien ranger permet d'observer la loi universelle d'entropie: l'inévitable convergence vers le chaos...
    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 : 6
    Points
    6

    Par défaut

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

    Merci !!!!!!!!!

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

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •