Bonjour à tous,
Je bloque un peu sur un exercice trouvé sur interactivepython (d'ailleurs, est ce que quelqu'un pourrait me confirmer ou infirmer si ce site est bon pour que je puisse devenir un bon programmeur python ET être capable de résoudre efficacement des problèmes algorithmiques complexes).
Il est assez simple, il faut afficher une liste qui contient tous les caractères présents dans les différents mots d'une chaîne donné. Il est aussi spécifié de le résoudre avec les compréhensions de liste.
Là ou je sèche, c'est de trouver une expression pour que la liste finale ne puisse pas avoir de doublon!
Voici la liste de l'exercice: ['cat', 'dog' 'rabbit']. Ce code affiche tous les caractères présents (avec doublon):
liste = [word[i] for word in ['cat','dog','rabbit'] for i in range(len(word))]
Pour supprimer les doublons, j'ai pensé à ajouter à la fin la condition 'if word[i] not in [word[j] for j in range(i)] mais ça ne marche pas vraiment étant donné qu'on ne compare que les lettres répétées au sein du même mots alors qu'elles peuvent être répétées dans différents mots.
La condition if liste.count(word[i])) ne marche pas non plus.
C'est évidemment possible de le résoudre (facilement) en transformant la liste en set puis en liste mais je voulais savoir si il n'y avait pas une petite astuce pour résoudre le problème en une seule ligne avec la compréhension des listes.
Partager