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 :

Comment remplacer les voyelles d'une liste ?


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    ETUDIANT
    Inscrit en
    Septembre 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ETUDIANT
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2017
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Comment remplacer les voyelles d'une liste ?
    Bonsoir, j'ai une liste avec plusieurs noms dedans, je dois remplacer toutes les voyelles étant dans cette liste par des " - "
    voici ce que j'ai fais:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    list1 = ['john', 'tony', 'luck']
     
     
    def replace_vowel(mlist):
                vowels = "aeiouy"
                novowel = ""
                for char in mlist:
                    if char in vowels:
                        novowel = novowel.replace(char, '-')
                        return mlist
     
    print replace_vowel(list1)
    pour le moment ca me print " None "
    je me suis donc trompé dans le code ou alors j'ai oublié quelque chose
    Je voudrais que ca me print:



    ['j-hn', 't-n-', 'l-ck']


    un peu d'aide ? merci !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 240
    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 240
    Points : 36 696
    Points
    36 696
    Par défaut
    Salut,

    Citation Envoyé par hayee Voir le message
    j'ai une liste avec plusieurs noms dedans, je dois remplacer toutes les voyelles étant dans cette liste par des " - "
    Vous voulez remplacer les voyelles de chaque mot de la liste.
    Ce qui doit se traduire par une double boucle: on récupère un mot, on remplace les voyelles du mot, et on le remet dans la liste (ou on fabrique une nouvelle liste).

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

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    Essaie cela déjà, cela va peut-être faire "tilt" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    list1 = ['john', 'tony', 'luck']
     
     
    def replace_vowel(mlist):
                vowels = "aeiouy"
                novowel = ""
                for char in mlist:
                    print(char)
    replace_vowel(list1)
    Pas d'aide par mp.

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 784
    Points : 7 043
    Points
    7 043
    Par défaut
    Il y a aussi des fonctions sympas avec str.maketrans et str.translate.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre à l'essai
    Homme Profil pro
    ETUDIANT
    Inscrit en
    Septembre 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ETUDIANT
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2017
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    bonsoir,
    j'ai désormais essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    list1 = ['john', 'tony', 'luck']
     
    def replace_vowel(mlist):
        vowels = "aeiouy"
        new_word = []
        for letter in mlist:
            if letter in vowels:
                new_word.append('-')
        else:
            new_word.append(letter)
        return mlist
     
    print replace_vowel(list1)
    mais ca me print uniquement le dernier nom de ma liste, donc ['luck']

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    Apparemment, tu n'as pas testé mon code.
    Essaie celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    list1 = ['john', 'tony', 'luck']
     
    def replace_vowel(mlist):
        vowels = "aeiouy"
        new_word = []
        for letter in mlist:
            print("letter : \t",letter, "-> mlist : \t", mlist)
            if letter in vowels:
                new_word.append('-')
        else:
            new_word.append(letter)
        return mlist
     
    print (replace_vowel(list1))
    la commande "print" est la base pour trouver ses erreurs.
    Un peu d'aide : est-ce que "letter" est ce que tu attends ?
    Pas d'aide par mp.

  7. #7
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Avec une boucle et une regex il doit y avoir moyen de le faire.
    Si la réponse vous a aidé, pensez à cliquer sur +1

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 604
    Points : 2 070
    Points
    2 070
    Par défaut
    A mon avis, ce n'est pas le but de l'exercice.
    Pas d'aide par mp.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 783
    Points : 437
    Points
    437
    Par défaut
    Salut

    Pas mal de soucis dans ton code

    Le premier :
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def replace_vowel(mlist):
        for letter in mlist:
    ...
     
    list1 = ['john', 'tony', 'luck']
    print (replace_vowel(list1))

    à ton avis; quelle est la valeur la variable letter ici ?
    Le savoir est une arme alors soyons armés

  10. #10
    Membre à l'essai
    Homme Profil pro
    ETUDIANT
    Inscrit en
    Septembre 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ETUDIANT
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2017
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    bonjour, j'ai résolu l'exercice avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def replace_vowel(mlist):
        vowels = 'aeiouy'
        newlist = []
        for word in mlist:
            for char in word:
                if char in vowels:
                    word = word.replace(char, '-')
            newlist.append(word)
        return newlist
    merci pour votre aide

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 783
    Points : 437
    Points
    437
    Par défaut
    Dans ce cas, merci d'utilise le bouton "Résolu"
    Le savoir est une arme alors soyons armés

  12. #12
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 784
    Points : 7 043
    Points
    7 043
    Par défaut
    Je ferais bien quelque chose d'un peu plus générique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    VOWELS = 'aeiouy'
     
    def replace_vowel(s, char='-'): 
        table = str.maketrans(VOWELS, char*len(VOWELS))
        return s.translate(table)
     
    list1 = ['john', 'tony', 'luck']
    res = [replace_vowel(w) for w in list1]
    print(res)
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

Discussions similaires

  1. comment récupérer les valeurs d'une liste déroulante
    Par paolo2002 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 27/06/2008, 21h05
  2. Réponses: 3
    Dernier message: 18/03/2008, 22h55
  3. Comment transférer les données d'une liste de choix ?
    Par rachid31 dans le forum Langage
    Réponses: 4
    Dernier message: 06/04/2007, 14h35
  4. Réponses: 4
    Dernier message: 13/11/2006, 18h49
  5. Réponses: 3
    Dernier message: 15/05/2006, 17h09

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