[PYTHON] Supprimer les doublons d'une liste, en gardant l'ordre.
Résolu
JulienJust
Messages postés
164
Statut
Membre
-
JulienJust Messages postés 164 Statut Membre -
JulienJust Messages postés 164 Statut Membre -
Bonjour tout le monde,
J'ai un petit soucis:
Je souhaite écrire un script pouvant supprimer les doublons d'une liste tout en conservant l'ordre des éléments.
Voici le type de liste sur lesquelles je bosse:
et je veux que le script puisse me retourner la liste de la manière suivante:
Seuls les doublons de TROIS LETTRES doivent être éliminés.
Pouvez-vous m'aider?
Merci d'avance :-)
J'ai un petit soucis:
Je souhaite écrire un script pouvant supprimer les doublons d'une liste tout en conservant l'ordre des éléments.
Voici le type de liste sur lesquelles je bosse:
liste = [ 'N', 'MAO', 'MAN', 'O', 'N', 'MAO', 'MAN']
et je veux que le script puisse me retourner la liste de la manière suivante:
liste = ['N', 'MAO', 'MAN', 'O', 'N'].
Seuls les doublons de TROIS LETTRES doivent être éliminés.
Pouvez-vous m'aider?
Merci d'avance :-)
3 réponses
-
Bonjour,
Cet algo devrait pouvoir t'aider, tu n'as pu qu'à le faire en python, et les mots clés sont presque les mêmes...
LISTE listeFinale FOR element IN listeTemporaire { IF NOT(LEN(element) == 3 AND element IN listeFinale == TRUE) listeFinale.ADD(element)
Cdlt. -
Merci julien !
J'ai pu trouver la solution par moyen ;) -
Pour les curieux, voici mon script-réponse. Il marche mais il n'est pas optimum:
# Initialisation liste = [ 'N', 'MAO', 'MAN', 'O', 'N', 'MAO', 'MAN'] liste2 = [] liste3 = [] liste2 = [elem for elem in liste if len(elem)>1] # Permet de créer une liste avec les éléments à trois caractères: MAO, MAN,... [liste3.append(elem) for elem in liste2 if not elem in liste3] # Crée la même liste que ci-dessus mais sans les doublons liste.reverse() # Renverse la liste # Par cette boucle for on supprime les doublons de liste tout en conservant l'ordre des élémentsfor j in range(0, len(liste3)): if liste3[j] in liste: liste.remove(liste3[j])liste.reverse()
>>> print liste [ 'N', 'MAO', 'MAN', 'O', 'N']