parcourir liste avec 2 indices
Bonjour, je souhaite écrire un programme qui enlève les doublons sur une chaîne de caractère. Je suis débutant et j'ai un message d'erreur index out of range en utilisant ce programme:
Code:
1 2 3 4 5 6 7
| m=str(input("entrer votre mélodie"))
liste=list(m)
for i in range(len(liste)-1):
if liste[i]==liste[i+1]:
liste.remove(liste[i])
liste.remove(liste[i+1])
print(liste) |
ce qui cloche c'est à la ligne du if mais je ne comprends pas pourquoi
je vous remercie.
avec groupby de itertools
Citation:
Envoyé par
wiztricks
Salut,
Il faut préciser "enlever les doublons".
Le code proposé par Fred fabrique "abcd" à partir de "aabbccddaaabbcccddddd".
Mais enlever les doublons peut être pris au sens "répétitions".
Dans ce cas, le résultat attendu serait plutôt "abcdabcd".
- W
Code:
1 2 3 4 5
|
from itertools import *
mot = "aabbccddaaabbcccddddd"
res = "".join([c for (c,g) in groupby(mot)])
print(res) |