IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

recherche dans des strings


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 41
    Points : 28
    Points
    28
    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 éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    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
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    Mais c'est juste génial ce truc !!

    Merci !!!!!!!!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Points : 426
    Points
    426
    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 Bibliothèques et frameworks
    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