-1
votes

Comment supprimer des éléments d'une liste dans une boucle

unknown_list = ["toby", "James", "kate", "George", "James", "rick", "Alex", "Jein", "Alex", "Alex", "George", "Jein", "kate", "medelin"]

for i in range(len(unknown_list)):
    item = unknown_list[i]
    unknown_list[i] = item.replace(item[0], item[0].upper())

x = 0
for b in range(0, len(unknown_list)):
    if unknown_list[b] in unknown_list[b+1:]:
        unknown_list.remove(unknown_list[b])
        x += 1


print(x)
print(unknown_list)
I'm so stuck. There's error in line 9. I need to remove duplicates from list (I can't use function that I haven't learnt yet, that's why I write code like that)

1 commentaires

Le conseil n'est pas de supprimer des éléments de la liste que vous êtes en boucle. Vous devez créer une autre liste et ajouter des non-duplicats là-bas. Aussi, s'il vous plaît, écrivez la tâche réelle dans la description


4 Réponses :


0
votes

C'est une doublure: liste (SET (Source_List)) fera le tour.

Un ensemble est quelque chose qui ne peut pas avoir des duplicats.


0 commentaires

0
votes

Votre erreur d'index se produit car dans une liste des éléments N, il y a des indices N-1 (puisque nous commençons à la liste [0]) xxx

vous avez aussi x = 0 qui Vous n'utilisez jamais, bien que vous soyez itérale dessus. Cependant, cela supprimera tous les noms de la liste et ne laissez pas le premier (vous n'êtes donc laissé avec des noms que figurant dans la liste une fois).

Un moyen de faire cela où vous vous retrouvez. Avec une liste de tous les noms uniques consiste à créer une liste vide, puis appendez des noms distincts: xxx


2 commentaires

Je pense que b + = 1 est inutile


Oups, tu as raison. Fixé



0
votes

Ceci devrait fonctionner: xxx

Explication:

jamais Supprimer des éléments d'une liste à l'intérieur d'un < Code> pour boucle. jamais . Vous vous retrouverez presque certainement avec l'erreur hors de portée . Et même si vous n'avez pas au moins la moitié des éléments seront ignorés.

Une solution consiste à utiliser un pendant boucle. Étant donné que les éléments de la liste sont déplacés vers la gauche lors de la suppression de l'astuce consiste à ADVANCE L'index i lorsque aucun élément n'est supprimé. D'autre part, si un élément est supprimé, vous restez mis (l'élément inconnu_list [i] sera maintenant l'élément décalé à comparer) et, bien sûr, vous diminuez le nombre total d'éléments dans la Liste ( n ).

S'il vous plaît, assurez-vous de comprendre ce qui arrive à la liste une fois qu'un article est supprimé. Vous pouvez le comprendre en examinant l'ordre des éléments dans la liste résultante:

['Toby', 'James', 'Rick', 'Alex', 'George', '" Jein ',' kate ',' médeline ']

par rapport à la liste d'entrée:

[' Toby ',' James ',' Kate ',' Kate ', "Kate" , 'George', 'James', 'Rick', 'Alex', 'Jein', 'Alex', 'Alex', 'Alex', 'George', 'Jein', 'Jein', 'Kate', 'Medelin'] < / p>


0 commentaires

1
votes

C'est un moyen plus simple de le faire. Il y a une fonction intégrée appelée ensemble xxx

Report: https://www.geeksforgeeks.org/sets-in-python/


0 commentaires