J'ai une liste l = ['AAB', 'CAA', 'ADA'] code>. Je souhaite obtenir la liste suivante sans caractères dupliqués
new_l = ['ab', 'ca', 'ad'] code>. J'essaie de parcourir une boucle imbriquée, mais je ne suis pas sûr que ce soit le meilleur moyen d'accomplir cela. Voici mon essai:
new_l = []
for i in range(0,len(l)-1):
for j in range(0,len(l)-1):
if l[i][j] != l[i+1][j+1]:
new_l = ..............
3 Réponses :
Vous pouvez facilement le faire, puisque une chaîne est également une liste.
Set peut gâcher l'ordre des caractères. Meilleur usage ordonnéDict:
Remarque: dans Python3.7 ou au-dessus de l'ordre des clés est conservé dans des dictionnaires.
@ZAK ZAREYAN Pourriez-vous expliquer votre code depuis .Fromkeys CODE> Créer un nouveau dictionnaire commandé avec les clés de la valeur iTable et des valeurs définies sur Valeur. Je n'obtiens pas comment
.fromkeys code> créer un
définit code> de
strl code>
Vous vous joignez par "" code> caractère (c'est-à-dire par rien) Les touches de commandeDDICT (
joindre code> méthode ne se rendent que sur les touches) créées à partir de clés (c.-à-d.
{' Key1 ': Aucun,' Key2 ': aucun} code>).
désolé toujours ne comprend toujours pas pourquoi se joindre par caractère vide supprimera les doublons
CommandéDict fait votre chaîne comme: 'AAB' -> {'A': Aucun, 'B': Aucun} Code> et supprime des doublons. Alors vous rejoignez les clés et obtenez-vous 'ab'
Ok maintenant j'ai compris merci. J'ai essayé le dictionnaire normal code> et cela fonctionne également car la commande est conservée dans Python 3.7 ou plus.
l = ['AAB', 'CAA', 'ADA'] new_l = [''.join(sorted(set(x))) for x in l] #op ['AB', 'AC', 'AD']