[Python] Question : opération sur une chaine

sycosis Messages postés 17 Statut Membre -  
loveparade Messages postés 506 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   60
 
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   Statut Contributeur Dernière intervention   74
 
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