Dans ce code, j'essaie de supprimer chaque élément répété de la liste et de simplifier tout l'élément unique et non répété, alors quand j'exécute ce code, donnez-moi une erreur:
Traceback (most recent call last):
File "main.py", line 8, in <module>
if myList[i]== myList[j]:
IndexError: list index out of range
4 Réponses :
Vous pouvez convertir la liste en défini, il supprimera automatiquement tous les éléments répétés Remarque: nous nous convertissons à nouveau défini sur la liste p> p>
Qu'est-ce que Heppening ici est que vous supprimez certains éléments de votre liste, ce qui le rend plus court.
Étant donné que vous êtes en train de fonctionner pour la longueur de votre liste d'origine, vous allez éventuellement essayer d'accéder à un index qui n'est plus existe. Cela vous fera que vous obtiendrez «index de liste hors de portée» p>
pour voir cela pour vous-même, vous pouvez ajouter une instruction Imprimer, comme: P>
myList = [1, 2, 4, 4, 1, 4, 2, 6, 2, 9]
repeat = 0
for i in range(len(myList)-1):
for j in range(len(myList)-1):
print(i,j,len(myList))
if myList[i]== myList[j]:
repeat+=1
if repeat>1:
del myList[j]
C'est une très mauvaise idée de modifier un tableau tout en boucle car vous n'avez aucun contrôle sur la manière dont les choses sont manipulées.
Puis-je suggérer ces deux solutions à votre problème.
Le premier utilise ensemble défini. P> L'autre solution utilise un autre tableau P> myList = [1, 2, 4, 4, 1, 4, 2, 6, 2, 9]
uniques = []
for number in myList:
if number not in uniques:
uniques.append(number)
print("The list with unique elements only:")
print(uniques)
C'est une excellente solution, merci mais pour le premier, je ne peux utiliser aucune fonction intégrée comme liste et définir, donc j'ai utilisé la deuxième solution et que c'était correct.
Set Type de données Strong> dans Python est utilisé pour éliminer la duplicité. Chaque fois qu'un itérateur doit être visualisé avec uniquement les valeurs uniques, elle peut être convertie en un ensemble et qui supprimera toutes les valeurs dupliquées. Par exemple: sortie: p> Il peut être reconverti dans la liste: p> [1, 2, 4, 6, 9]
Dites, vous avez 3 éléments de la liste. Vous trouvez une répétition et une suppression 1. Mais les boucles sont de 0 à 2 de toute façon. Donc quand dites
i code> devient 2,myList [i] code> n'existe pas et c'est pourquoi vous obtenez l'erreurEst-ce que cela répond à la question, Stackoverflow.com/questions/7961363/... < / a>
@kuro c'est une note utile et c'était l'erreur avec moi, merci beaucoup.
@Sushanth c'est bien mais je n'ai pas à utiliser autre chose que des listes et des boucles non intégrées de fonctions telles que l'ensemble de la liste.
Est-ce que cela répond à votre question? Supprimer des doublons dans des listes
@NICK Merci Nick pour m'aider, mais je suis préoccupé d'utiliser uniquement des boucles pour traiter des listes et n'avez pas la disponibilité à utiliser des fonctions intégrées telles que la liste ou l'ensemble.
@ Tarekm.abdullah Il y a beaucoup de réponses à cette question, dont le quatrième est exactement identique à la réponse que vous avez acceptée.