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 :

Remplacer des Mots dune list dans chaine string


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2005
    Messages : 120
    Par défaut Remplacer des Mots dune list dans chaine string
    Bonjour,

    je voulais supprimer une phrase dans une chaine string , j'ai essayé cette fonction :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    def Rempalcer(textString):
        cle = ['Comparer','(voir tous les produits)','(voir tous les articles)']
        if textString.find(cle[0]):
            return textString.replace(cle[0], '')
        elif textString.find(cle[1]):
            return textString.replace(cle[1], '')
        elif textString.find(cle[2]):
            return textString.replace(cle[2], '')
    La fonction elle supprimer que le premier element de la liste qui est "Comparer".
    voici le resultat aprés l'excution de ces fonctiosn :
    Marque :

    Axolotl Biosystems
    (voir tous les produits)



    Catégorie : Professionnelle

    Thématique :

    La bio-impression
    (voir tous les articles)
    j'ai essayé aussi cette 2éme fonction : son fonction est ( étirer la liste et chaque element le remplacer si ce trouve cette elements dans textString.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def Rempalcer(textString):
        cle = ['Comparer','(voir tous les produits)','(voir tous les articles)']
        for x in cle:
            if textString.find(x):
                return textString.replace(x, '')
    Il remplace toujours le premier Element dans notre cas qui est le mot Comparer veut dire la position 0 .

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Rien compris.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2005
    Messages : 120
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Rien compris.

    J'ai refomuler le message , J'éspére que tu vas comprendre .

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si tu veux supprimer toutes les occurences d'un string, tu peux utiliser un while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def Remplacer(textString):
    	cle = ['Comparer','(voir tous les produits)','(voir tous les articles)']
    	for x in cle:
    		while x in textString:
    			textString = textString.replace(x, '')
    	return textString
    Sinon il existe probablement un truc biscornu qui tiendrais en une ligne avec le module re.

  5. #5
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2005
    Messages : 120
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Si tu veux supprimer toutes les occurences d'un string, tu peux utiliser un while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def Remplacer(textString):
    	cle = ['Comparer','(voir tous les produits)','(voir tous les articles)']
    	for x in cle:
    		while x in textString:
    			textString = textString.replace(x, '')
    	return textString
    Sinon il existe probablement un truc biscornu qui tiendrais en une ligne avec le module re.
    Merci cela a bien fonctionner , J'aimerais savoir si on peux la faire avec le module re ?

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Si tu veux supprimer toutes les occurences d'un string, tu peux utiliser un while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def Remplacer(textString):
    	cle = ['Comparer','(voir tous les produits)','(voir tous les articles)']
    	for x in cle:
    		while x in textString:
    			textString = textString.replace(x, '')
    	return textString
    Testez avant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> s ='ababababa'
    >>> s.replace('a', 'Z')
    'ZbZbZbZbZ'
    replace remplace bien toutes les occurrences.
    donc le while ne sert à rien.

    Et si on cherche à remplacer quelque chose qui n'existe pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> s.replace('u', 'Z')
    'ababababa'
    >>>
    çà ne fait rien.

    Faire un replace inconditionnel devrait suffire.


    Citation Envoyé par NapsterVB Voir le message
    Merci cela a bien fonctionner , J'aimerais savoir si on peux la faire avec le module re ?
    Absolument et vous pouvez jeter un oeil ici pour vous en assurer ou dans le tuto sur les regexp.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Invité
    Invité(e)
    Par défaut
    Mince ça c'est vu...

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    str.find retourne la position du premier mot trouvé ou -1.
    Si vous utilisez le retour de cette fonction comme condition, çà va convertir le résultat en booléen. Avec Python, 0 sera False alors que les nombres non nuls seront True.

    Tester explicitement si le résultat est positif ou nul... sera une solution.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. outil pour remplacer des mots dans un xml
    Par hedibox dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 10/10/2013, 12h45
  2. Remplacer des mots dans une chaine de caracteres
    Par johnson95 dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2011, 09h19
  3. [XL-2007] remplacement des mots dans la meme colonne
    Par jeph.net dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/12/2011, 19h59
  4. [RegEx] Remplacer des mots d'une chaine aléatoirement
    Par sigmoun dans le forum Langage
    Réponses: 2
    Dernier message: 25/04/2009, 18h56

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