[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 -
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 !
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:
- Modifier chaine de caractère python
- Modifier dns - Guide
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Modifier liste déroulante excel - Guide
- Caractères spéciaux : comment les saisir facilement - Guide
2 réponses
def voy(chaine): bib1 = "aeiouywh" tmp = chaine[1:] for letter in bib1: tmp = tmp.replace(letter, '') return chaine[0]+tmp
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'.
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'.