[Python] Question : opération sur une chaine

Fermé
sycosis Messages postés 16 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 15 septembre 2011 - 22 févr. 2009 à 23:58
loveparade Messages postés 506 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 14 mai 2011 - 23 févr. 2009 à 10:33
Bonjour à tous,

Je planche sur une fonction qui me permettrait de supprimer certaines voyelles (et semi voyelles ou consonnes muettes) d'une chaine de caractères, puis de convertir les lettres restantes en chiffres (mais c'est pas pour tout de suite ^^).

Mon problème est le suivant :

Voici ma fonction :
def voyelles(chaine):
bib1=["AEIOUYWH"]
bib2=[""]
i=0
for mot in bib1:
repl=bib2[i]
for lettre in mot:
chaine=chaine.replace(lettre,repl)
i+=1
return chaine

J'aimerais faire en sorte qu'elle ignore la première lettre de la chaine et la conserve même si c'est une voyelle !

Mais je n'y arrive pas :(

Si je rajoute par exemple un for lettre in mot[1:]:
Ca marche et garde le second caractère meme si c'est une voyelle mais le [0:] (pour faire a partir du second caractère et laisser le premier de coté) au même endroit ne fonctionne pas et je ne comprends pas pourquoi.

Merci d'avance pour votre aide !
A voir également:

2 réponses

loveparade Messages postés 506 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 14 mai 2011 60
Modifié le 11 déc. 2018 à 18:38
def voy(chaine):
    bib1 = "aeiouywh"
    tmp = chaine[1:]
    for letter in bib1:
            tmp = tmp.replace(letter, '')
    return chaine[0]+tmp

4
raspoute Messages postés 827 Date d'inscription lundi 1 mai 2006 Statut Contributeur Dernière intervention 13 septembre 2013 71
23 févr. 2009 à 09:15
Salut,

une solution consisterait à créer une variable "resultat" et d'y affecter la première lettre de 'chaine'. Ensuite à l'aide d'une boucle for, commençant à la deuxième lettre de 'chaine' ([1:] comme tu l'a suggéré) ajouter à 'resultat' toutes les lettres qui ne sont pas contenues dans ta variable 'bib1'.

0